【问题标题】:How do I set up a build-script with Maven?如何使用 Maven 设置构建脚本?
【发布时间】:2019-09-28 18:10:15
【问题描述】:

我如何告诉 Maven、运行什么方法/类以及如何告诉它、它应该导入哪些类以及在哪里导入?

我必须使用 Eclipse Maven 插件,我不太明白如何输入命令。我是否要更改 pom 文件,或者是否有任何按钮,或者我是否使用命令行。

我试图找到有关它的信息,但因为我必须使用 eclipse Maven 工具,我似乎找不到我要找的东西。

我的文件结构

|
|- src
|   |
|    - serie04 
|        |
|         - callee
|             |
|              - Callee.java
|         - caller
|             |
|              - Caller.java
|- classes
|- jars

我的两个 Java 类:

package serie04.callee;

public class Callee {
    public void callMe() {
        System.out.println("Callee says: You called me!");
   }
}
package serie04.caller;

import serie04.callee.Callee;

public class Caller {
    public static void main(String[] args) {
        Callee callee = new Callee();
        callee.callMe();
    }
}

我希望在 jar-File 中创建一个 jar 并打印“Callee says: You call me!”在命令行上。

【问题讨论】:

  • 您的意思是具体如何告诉 Maven 设置一个可以使用 java -jar 运行的 jar?
  • 是的,我愿意。我如何告诉 maven 他应该使用哪些类?
  • 它告诉我我没有添加任何东西,所以罐子是空的。

标签: java eclipse maven pom.xml


【解决方案1】:

使用 Maven 时,最好坚持使用默认值 - 例如,源代码位于 src/main/java 下。

您可以从头开始一个新的 Maven 项目。使用 Eclipse 菜单,转到File > New > Other..,然后选择Maven>Maven Project;点击Next。在下一页中,选中Create simple project 组合框并单击next。使用“sample”和“sample”作为groupId和artifactId;然后点击Finish

您现在在 Eclipse 中有一个“示例”项目;这个项目是基于 Maven 的。将您的代码放在src/main/java 下。如果您从 Windows 复制/粘贴源代码,则需要 Refresh 您的项目。

现在可以使用mvn package 从命令行编译项目(试一试..),并生成jar 文件,但您需要清单(需要运行java -jar ..)。


要添加清单,请查看以下答案:How can I create an executable JAR..

编辑后,您的pom.xml 将如下所示。使用 cmd 行中的 mvn package 构建。使用java -jar sample-0.0.1-SNAPSHOT-jar-with-dependencies.jar 运行。

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>

  <groupId>sample</groupId>
  <artifactId>sample</artifactId>
  <version>0.0.1-SNAPSHOT</version>

  <build>
    <plugins>
      <plugin>
        <artifactId>maven-assembly-plugin</artifactId>
        <configuration>
          <archive>
            <manifest>
              <mainClass>serie04.caller.Caller</mainClass>
            </manifest>
          </archive>
          <descriptorRefs>
            <descriptorRef>jar-with-dependencies</descriptorRef>
          </descriptorRefs>
        </configuration>
        <executions>
          <execution>
            <id>make-assembly</id>
            <phase>package</phase>
            <goals>
              <goal>single</goal>
            </goals>
          </execution>
        </executions>
      </plugin>
    </plugins>
  </build>
</project>

编辑 可以使用build.sourceDirectory 自定义源的位置,如下所示

..
  <build>
    <sourceDirectory>${project.basedir}/src</sourceDirectory>
    <plugins>
      <plugin>
      ....
..

【讨论】:

  • 好的,感谢您的回答,但我必须使用我在问题中所写的目录。如何告诉 Maven 使用我的路径而不是默认路径?
  • 如果确实需要,可以指定sourceDirectory;查看更新。
  • 好的,再次感谢。但是我不能创建一个新项目。我只被允许创建一个构建脚本。
  • 嗯,如果您的构建脚本使用 Maven,则无论如何您都需要一个 pom.xml 文件 - 您可以将 pom.xml 放在您的主项目文件夹中。构建脚本本身只会调用 mvn clean package
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-11-12
  • 1970-01-01
  • 2013-11-17
  • 1970-01-01
  • 2013-09-19
  • 2015-11-25
相关资源
最近更新 更多