如何在Jenkins的classpath中使用一组jar文件

时间:2012-11-22 08:59:51

标签: java jenkins build-automation

如何实现这一目标?

我有一组jar文件,它们将包含在CLASSPATH变量中。

我不想将命令SET CLASSPATH=xxx.jar;xx.jar;..作为构建步骤的一部分。

我不想手动将环境变量CLASSPATH设置为系统属性的一部分。

我尝试将一组jar文件复制到Jenkins_HOME/war/WEB-INF/lib并启动了Jenkins服务器。但无法实现......任何解决方案?

3 个答案:

答案 0 :(得分:0)

您可以尝试使用其他类路径元素maven。您可以在下面的链接中查看详细信息 https://maven.apache.org/surefire/maven-surefire-plugin/examples/configuring-classpath.html

<build>
<plugins>
  <plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-surefire-plugin</artifactId>
    <version>2.22.1</version>
    <configuration>
      <additionalClasspathElements>
        <additionalClasspathElement>path/to/additional/resources</additionalClasspathElement>
        <additionalClasspathElement>path/to/additional/jar</additionalClasspathElement>
        <additionalClasspathElement>path/to/csv/jar1, path/to/csv/jar2</additionalClasspathElement>
      </additionalClasspathElements>
    </configuration>
  </plugin>
</plugins>

答案 1 :(得分:0)

按如下所示设置CLASSPATH环境,任何jar文件都将其更新到特定目录

SET CLASSPATH = <your_lib_directory>\*

这将获取所有更新的JAR文件

答案 2 :(得分:-1)

我认为你自己比自己更难做事。为什么不将类路径设置为预构建步骤?也许是因为文物经常变化?

我的建议是你考虑使用Maven进行构建并将你的Jenkins作业转换为Maven作业 - 然后你可以在POM中处理你的额外依赖,而不是在Jenkins中 - 这可能会更优雅一些。

例如,您的JUnit和Selenium依赖项可以包含在

<dependencies>
    <dependency>
        <groupId>junit</groupId>
        <artifactId>junit</artifactId>
        <version>4.9</version>
        <scope>test</scope>
    </dependency>
    ... etc

<scope>对于让他们远离最终工件很重要)并且在Jenkins工作配置中,“目标和选项”可以是test package

希望有所帮助。

干杯,