Maven:构建代码时无法执行自定义代码

时间:2017-10-02 08:09:50

标签: java eclipse maven

我的问题如下:在构建Maven项目时执行一些代码。 我浏览了这个论坛并找到this guide。 为此,我创建了一个父项目,这是 pom.xml

<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>it.dependency</groupId>
  <artifactId>parent-node</artifactId>
  <version>0.0.1-SNAPSHOT</version>
  <packaging>pom</packaging>
  <modules>
    <module>compilation-node</module>
    <module>building-module</module>
  </modules>
</project>

然后,我创建了一个子项目,其角色只包含一个带有main的类,我计划在其中插入自定义代码。托管该类的包放在 src / main / java 中。这是前面提到的类的测试内容:

package compilation.node;

public class Compilation {
    public static void main(String[]args)
    {
        System.out.println("Compilation printing");
    }
}

这是这个子项目的 pom.xml

<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>
  <parent>
    <groupId>it.dependency</groupId>
    <artifactId>parent-node</artifactId>
    <version>0.0.1-SNAPSHOT</version>
  </parent>
  <artifactId>compilation-node</artifactId>
</project>

最后,我创建了另一个子项目,这是我需要构建的项目,并且必须在构建时执行自定义代码。 这是 pom.xml

<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>
  <parent>
    <groupId>it.dependency</groupId>
    <artifactId>parent-node</artifactId>
    <version>0.0.1-SNAPSHOT</version>
  </parent>
  <artifactId>building-module</artifactId>

  <dependencies>
    <dependency>
      <groupId>it.dependency</groupId>
    <artifactId>compilation-node</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <scope>compile</scope>
    </dependency>
  </dependencies>

  <build>
    <plugins>
      <plugin>
        <groupId>org.codehaus.mojo</groupId>
        <artifactId>exec-maven-plugin</artifactId>
        <version>1.6.0</version>
        <executions>
          <execution>
            <goals>
              <goal>java</goal>
            </goals>
          </execution>
        </executions>
        <configuration>
          <mainClass>compilation.node.Compilation</mainClass>
        </configuration>
      </plugin>
    </plugins>
  </build>

</project>

我确认第二个子项目实际上依赖于它的兄弟使用测试类,无论如何当我构建第二个孩子时(来自Eclipse,右键单击它并选择 Run as - &gt; Maven install ),我需要的代码和放在另一个子项目中的代码不会被执行。 你能告诉我为什么吗?

提前感谢您的支持。

0 个答案:

没有答案