首页 > 解决方案 > 如何使用 Maven 设置构建脚本?

问题描述

我如何告诉 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 并打印“被调用者说:你打电话给我!” 在命令行上。

标签: javaeclipsemavenpom.xml

解决方案


使用 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现在可以使用(try it..)从命令行编译项目jar,并且构建会生成一个文件,但是您需要清单 (需要运行java -jar ..)。


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

编辑后,您pom.xml将如下图所示。mvn package使用从 cmd 行构建。运行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>
      ....
..

推荐阅读