【问题标题】:Maven: How to create a jar file of source files and test files?Maven:如何创建源文件和测试文件的jar文件?
【发布时间】:2020-03-01 13:52:43
【问题描述】:

我有一个包含单元测试的 Maven 项目。我想从“src”文件夹下的代码文件和“test”文件夹下的代码文件创建一个 JAR 文件。目前,我使用 maven-jar-plugin:

      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-jar-plugin</artifactId>
        <version>2.4</version>
        <executions>
          <execution>
            <id>make-a-jar</id>
            <phase>compile</phase>
            <goals>
              <goal>jar</goal>
            </goals>
          </execution>
          <execution>
            <id>make-a-test-jar</id>
            <goals>
              <goal>test-jar</goal>
            </goals>
          </execution>
        </executions>
      </plugin>

此插件生成两个 jar 文件 - 一个用于源文件,另一个用于测试。我想为两者创建一个 Jar 文件。

【问题讨论】:

  • 您能解释一下为什么要这样做吗?可能有更好的选择。
  • 好的。那么你能详细说明这样的替代方案吗?
  • 为什么要将 src 文件放在 test 目录中? - 看起来不是很好的做法
  • 除非我知道你想要达到什么目标。
  • @CrazySynthax 如果没有更多信息,将很难为您提供帮助。您想要解决的“真正”问题是什么?

标签: java maven


【解决方案1】:

你只能创建一个单独的jar文件from the src/test area in your project

<project>
  ...
  <build>
    <plugins>
      ...
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-jar-plugin</artifactId>
        <version>3.2.0</version>
        <executions>
          <execution>
            <goals>
              <goal>test-jar</goal>
            </goals>
          </execution>
        </executions>
      </plugin>
      ...
    </plugins>
  </build>
  ...
</project>

这将创建一个单独的 jar 文件,供其他人使用,如下所示:

<project>
  ...
  <dependencies>
    <dependency>
      <groupId>groupId</groupId>
      <artifactId>artifactId</artifactId>
      <classifier>tests</classifier>
      <type>test-jar</type>
      <version>version</version>
      <scope>test</scope>
    </dependency>
  </dependencies>
  ...
</project>

但通常,如果您希望拥有一个单独的 test-jar,则创建一个包含源代码的单独项目/模块更有意义,并且您只需更改依赖项的范围。这在文档中被描述为the preferred way.,我强烈推荐去。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-05-14
    • 2017-07-09
    • 1970-01-01
    • 2012-03-07
    • 2011-03-16
    • 2019-01-22
    • 1970-01-01
    • 2012-01-07
    相关资源
    最近更新 更多