当我在 Eclipse 中将其作为 java 应用程序运行时,我的代码正在运行,但是当我使用 maven-exec 插件运行 maven install 时它失败了。我知道它失败是因为它没有找到配置文件,但是如何呢?
如果我排除了 maven-exec 插件,它会成功构建,我可以执行我的 jar 文件和依赖项。
public class App
{
public static void main( String[] args )
{
System.out.println( "... starting DomParser" );
System.out.println( "... inside app" );
DOMParser.loadXML("/config.xml");
System.out.println( "... ending DomParser" );
}
}
这是简化的 DomParser 类
static SAXBuilder builder = new SAXBuilder();
static Document doc;
public static void loadXML(String path) {
java.net.URL url = DOMParser.class.getClass().getResource(path);
doc = builder.build(url);
root = doc.getRootElement();
}
这是 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>com.ericsson.ci.simnet</groupId>
<artifactId>domparser</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>jar</packaging>
<name>domparser</name>
<url>http://maven.apache.org</url>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.0</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>1.2.14</version>
</dependency>
<dependency>
<groupId>org.jdom</groupId>
<artifactId>jdom2</artifactId>
<version>2.0.5</version>
</dependency>
</dependencies>
<build>
<!-- <finalName>${project.name}</finalName> -->
<plugins>
<!-- Tell maven to compile using Java 1.7 -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.1</version>
<configuration>
<source>1.6</source>
<target>1.6</target>
</configuration>
</plugin>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>exec-maven-plugin</artifactId>
<version>1.2.1</version>
<executions>
<execution>
<phase>test</phase>
<goals>
<goal>java</goal>
</goals>
<configuration>
<mainClass>com.x.ci.simnet.domparser.App</mainClass>
<arguments>
<argument></argument>
</arguments>
</configuration>
</execution>
</executions>
</plugin>
<!-- to bundle necessary classes of dependent JAR files -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-shade-plugin</artifactId>
<version>1.5</version>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>shade</goal>
</goals>
<configuration>
<transformers>
<transformer
implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">
<mainClass>com.x.ci.simnet.domparser.App</mainClass>
</transformer>
</transformers>
<!--<shadedArtifactAttached>true</shadedArtifactAttached> -->
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
</project>
错误在这里:
[ERROR] Failed to execute goal org.codehaus.mojo:exec-maven-plugin:1.2.1:java (default) on project domparser: An exception occured while executing the Java class. null: InvocationTargetException: NullPointerException -> [Help 1]