在建立战争时创建额外的jar

时间:2014-08-28 12:28:48

标签: java gradle

我的gradle构建脚本中有依赖项:

apply plugin 'war'

dependencies {
    compile 'com.github.jsimone:webapp-runner:7.0.22'
}

创建战争时,createWebappRunnerJar是否可以通过给定的远程源创建jar?

我正在查看http://www.gradle.org/docs/current/dsl/org.gradle.api.tasks.bundling.Jar.html,但我认为它不适合用于远程来源。

webapp-runner已经内置于战争中,如果它不能从远程来源构建,可能会以某种方式将其从战争中复制出来?

在maven中,以下内容相同:

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-dependency-plugin</artifactId>
    <version>2.3</version>
    <executions>
        <execution>
            <phase>package</phase>
            <goals>
                <goal>copy</goal>
            </goals>
            <configuration>
                <artifactItems>
                    <artifactItem>
                        <groupId>com.github.jsimone</groupId>
                        <artifactId>webapp-runner</artifactId>
                        <version>7.0.22</version>
                        <destFileName>webapp-runner.jar</destFileName>
                    </artifactItem>
                </artifactItems>
            </configuration>
        </execution>
    </executions>
</plugin>

1 个答案:

答案 0 :(得分:1)

您最好的选择是为您打算包含为远程源的依赖项创建单独的配置,然后创建一个复制任务,将该配置复制到您选择的位置。

configurations {
    remoteSources {
        transitive false
    }
}

dependencies {
    remoteSources 'com.github.jsimone:webapp-runner:7.0.22'
}

task copyRemoteSources(type: Copy) {
    from configurations.remoteSources
    into "${project.buildDir}/remoteSources"
}