我想为exec-maven-plugin添加一个额外的类路径 除了%classpath,我想添加一个额外的路径到包含资源的目录(/ Users / kornp / resources)。 目前,我的pom看起来像这样:
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>exec-maven-plugin</artifactId>
<version>1.1.1</version>
<configuration>
<executable>java</executable>
<classpathScope>runtime</classpathScope>
<arguments>
<argument>%classpath:/Users/kornp/resources</argument>
<argument>org.drrabbit.maventest.App</argument>
</arguments>
</configuration>
</plugin>
我该如何配置?
答案 0 :(得分:5)
我的源文件夹之外的特定目录中有一些配置文件。所以我为我的pom.xml文件定义了额外的资源。
我的示例目录结构是:
+ src
+ conf
- app.properties
- log4j.xml
- pom.xml
我的pom.xml:
<build>
<resources>
<resource>
<directory>conf</directory>
</resource>
<resource>
<directory>src/main/resources</directory>
</resource>
</resources>
<plugins>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>exec-maven-plugin</artifactId>
<version>1.2.1</version>
<configuration>
<executable>java</executable>
<mainClass>com.mycompany.MyMainClass</mainClass>
</configuration>
</plugin>
</plugins>
<build>
现在我们可以执行程序:
mvn clean compile exec:java
答案 1 :(得分:2)
您是否尝试使用commandlineArgs
参数(如exec example中所述)?
答案 2 :(得分:1)
虽然看起来不那么优雅,但切换到antrun插件应该有效:
<plugin>
<artifactId>maven-antrun-plugin</artifactId>
<executions>
<execution>
<id>runSomething</id>
<phase>package</phase>
<goals>
<goal>run</goal>
</goals>
<configuration>
<target>
<property name="runtime_classpath" refid="maven.runtime.classpath"/>
<java classname="org.drrabbit.maventest.App"
fork="true"
failonerror="true"
maxmemory="512m">
<classpath>
<pathelement path="${project.build.directory}/some/extra/resources" />
<pathelement path="${runtime_classpath}" />
</classpath>
</java>
</target>
</configuration>
</execution>
</executions>
</plugin>
但是,正如您的操作建议,将额外资源放在项目之外的某个地方似乎并不是一个好主意。您应该考虑将其作为项目的一部分,或者将其作为jar并部署到maven repo,以便将其作为插件依赖项。
答案 3 :(得分:0)
好,
我调整了插件,以便可以完全指定命令行参数(包括%classpath参数)