Geo*_*old 15 java maven-2 maven
我有一个项目,使用"系统"范围来指定我的项目的WEB-INF/lib目录中包含的jar文件.此工件不在任何maven存储库中,因此我必须将其作为项目的一部分包含在内.我这样做有以下几点:
<dependency>
<groupId>com.example</groupId>
<artifactId>MySpecialLib</artifactId>
<version>1.2</version>
<scope>system</scope>
<systemPath>${basedir}/src/main/webapp/WEB-INF/lib/MySpecialLib-1.2.jar</systemPath>
</dependency>
Run Code Online (Sandbox Code Playgroud)
这对大多数事情都很有用.
但是现在我正在尝试在命令行上运行一些代码(在我的webapp之外,通过main()我添加的方法)并且mvn exec:java无法解析MySpecialLib中的代码,因为它没有包含在"运行时"类路径中.
我怎么能:
要么
mvn exec:java也使用systemclasspath?我已经尝试过mvn exec:java -Dexec.classpathScope=system,但这样就不会有任何问题runtime.
有趣的是知道它classpathScope=system会降低runtime依赖性。我发现通过将其作为替代方案包含plugin在作品中pom.xml。您能尝试让我知道它是否也适合您吗?
因此,我向 commons-collection 添加了系统级依赖项作为示例,就像您的工件一样:-
<dependency>
<groupId>commons-collections</groupId>
<artifactId>commons-collections</artifactId>
<version>3.0</version>
<scope>system</scope>
<systemPath>C:\\<some_path>\\commons-collections-3.0.jar</systemPath>
</dependency>
Run Code Online (Sandbox Code Playgroud)
然后在<build>标签中我有exec-maven-plugin要在该阶段执行的插件install:-
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>exec-maven-plugin</artifactId>
<version>1.1</version>
<executions>
<execution>
<phase>install</phase>
<goals>
<goal>java</goal>
</goals>
<configuration>
<mainClass>com.stackoverflow.test.App</mainClass>
</configuration>
</execution>
</executions>
</plugin>
Run Code Online (Sandbox Code Playgroud)
然后我就跑了mvn install。我还确保com.stackoverflow.test.App类有一些从commons-collections-3.0.
希望这可以帮助。
| 归档时间: |
|
| 查看次数: |
9665 次 |
| 最近记录: |