开发者

How do I make a Maven module not export a jar?

开发者 https://www.devze.com 2022-12-19 14:13 出处:网络
I have a Maven build with three modules. Module A exports a jar. Module B depends on A and exports a jar.

I have a Maven build with three modules.

  • Module A exports a jar.
  • Module B depends on A and exports a jar.
  • Module C is a set of regression tests that depend on A and B.

The reason the regression tests aren't just part of开发者_JS百科 module B is that they should be able to run against multiple versions of A and B to ensure backwards compatibility. I want to be able to run deploy from the top level build to create A.jar and B.jar, but not C.jar. Is this possible?


<properties>
     <maven.deploy.skip>true</maven.deploy.skip>
</properties>

If you don't need to create a JAR at all, you might want to add two more properties:

<jar.skipIfEmpty>true</jar.skipIfEmpty>
<maven.install.skip>true</maven.install.skip>

Note that you still need maven.deploy.skip, otherwise the build will fail during deployment.


The maven deploy plugin includes a skip options that prevents artifact deployment.

<plugin>
  <artifactId>maven-deploy-plugin</artifactId>
  <configuration>
      <skip>true</skip>
  </configuration>
</plugin>

You can try adding that to project C.


Use below for module C:

<packaging>pom</packaging>


Use a packaging of type pom for C and rebind all required plugins:

<project>
  ...
  <packaging>pom</packaging>
  ...
  <build>
    <plugins>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-compiler-plugin</artifactId>
        <executions>
          <execution>
            <id>test-compile</id>
            <phase>test-compile</phase>
            <goals>
              <goal>testCompile</goal>
            </goals>
          </execution>
        </executions>
      </plugin>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-resources-plugin</artifactId>
        <executions>
          <execution>
            <id>process-test-resources</id>
            <phase>process-test-resources</phase>
            <goals>
              <goal>testResources</goal>
            </goals>
          </execution>
        </executions>
      </plugin>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-surefire-plugin</artifactId>
        <executions>
          <execution>
            <id>test</id>
            <phase>test</phase>
            <goals>
              <goal>test</goal>
            </goals>
          </execution>
        </executions>
      </plugin>
      ...
    </plugins>
    ...
  </build>
  ...
</project>
0

精彩评论

暂无评论...
验证码 换一张
取 消