Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/maven/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何在maven构建之前运行类?_Java_Maven - Fatal编程技术网

Java 如何在maven构建之前运行类?

Java 如何在maven构建之前运行类?,java,maven,Java,Maven,为什么以下情况会导致生成失败? 我创建了一个类,该类应该在maven开始执行构建之前运行 <plugin> <groupId>org.codehaus.mojo</groupId> <artifactId>exec-maven-plugin</artifactId> <version>1.5.0</version>

为什么以下情况会导致生成失败? 我创建了一个类,该类应该在maven开始执行构建之前运行

        <plugin>
            <groupId>org.codehaus.mojo</groupId>
            <artifactId>exec-maven-plugin</artifactId>
            <version>1.5.0</version>
            <executions>
                <execution>
                    <phase>generate-sources</phase>
                    <goals>
                        <goal>java</goal>
                    </goals>
                </execution>
            </executions>
            <configuration>
                <mainClass>my.package.CustomClass</mainClass>
            </configuration>
        </plugin>
只需更改maven执行的阶段(如“测试”或“安装”),这样当插件运行类时,它将在类路径中可用。(如果您确实无法将其移动到另一个依赖项)


org.codehaus.mojo
execmaven插件
1.5.0
测试
JAVA
my.package.CustomClass

如果您是从一个干净的版本运行,那么您将没有该类的编译版本,因此无法运行该类。也许如果你多说一点你为什么要这样做,我们可以想出一些其他的办法。一个主类怎么可能在编译之前就被执行呢?也许您想将执行绑定到
过程类
阶段?@Seelenvirtuose我需要一个
公共静态void main
类在
生成源
之前运行,以初始化外部wsdl服务的webservice身份验证的一些属性。@membersound那么这个类应该是另一个构建自己的工件。这个依赖项应该在插件配置的依赖项部分列出。因此,不可能在项目中只包含需要它的类??OP解释说,他需要在“生成源”阶段执行。此外,更适合的阶段是“流程类”。
java.lang.ClassNotFoundException: my.package.CustomClass
    at java.net.URLClassLoader$1.run(URLClassLoader.java:372)
    at java.net.URLClassLoader$1.run(URLClassLoader.java:361)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(URLClassLoader.java:360)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
    at org.codehaus.mojo.exec.ExecJavaMojo$1.run(ExecJavaMojo.java:281)
    at java.lang.Thread.run(Thread.java:745)
<plugin>
            <groupId>org.codehaus.mojo</groupId>
            <artifactId>exec-maven-plugin</artifactId>
            <version>1.5.0</version>
            <executions>
                <execution>
                    <phase>test</phase>
                    <goals>
                        <goal>java</goal>
                    </goals>
                </execution>
            </executions>
            <configuration>
                <mainClass>my.package.CustomClass</mainClass>
            </configuration>
        </plugin>