我正在使用Gradle作为构建系统来开发一个xtext
项目。我想在Jenkins中运行gradlew war
,但是由于某些原因,它不可用。当我运行gradlew tasks
以查看所有可用选项时,该选项未在此处列出。这些是可用的任务:
Build Setup tasks
-----------------
init - Initializes a new Gradle build.
wrapper - Generates Gradle wrapper files.
Help tasks
----------
buildEnvironment - ...
...
但是当我在计算机上本地运行它时,还有更多任务可用:
Build tasks
-----------
...
war - Generates a war archive with all the compiled classes, the web-app content and the libraries.
Build Setup tasks
-----------------
init - Initializes a new Gradle build.
wrapper - Generates Gradle wrapper files.
Documentation tasks
-------------------
javadoc - Generates Javadoc API documentation for the main source code.
Help tasks
----------
...
IDE tasks
---------
...
Run tasks
---------
jettyRun - Starts an example Jetty server with your language
Verification tasks
------------------
check - Runs all checks.
test - Runs the unit tests.
显然war
任务在那里,我可以毫无问题地运行它。为什么詹金斯当时看不到它。我还没有修改任何Gradle文件。全部包含随项目创建的默认代码。如果需要,我可以附加任何Gradle文件,但我不知道可能需要哪个文件。但是,这是主build.gradle
文件(子目录中有更多文件:
buildscript {
repositories {
jcenter()
}
dependencies {
classpath 'org.xtext:xtext-gradle-plugin:2.0.4'
}
}
subprojects {
ext.xtextVersion = '2.17.0'
repositories {
jcenter()
}
apply plugin: 'java'
dependencies {
compile platform("org.eclipse.xtext:xtext-dev-bom:${xtextVersion}")
}
apply plugin: 'org.xtext.xtend'
apply from: "${rootDir}/gradle/source-layout.gradle"
apply plugin: 'eclipse'
group = 'ic.ac.uk.mydsl'
version = '1.0.0-SNAPSHOT'
sourceCompatibility = '1.8'
targetCompatibility = '1.8'
configurations.all {
exclude group: 'asm'
}
}
答案 0 :(得分:0)
确定要从Jenkins的同一目录和本地运行./gradlew tasks
吗?如果从根项目目录运行Gradle命令,则将显示根项目的任务,但不显示子项目的任何任务。您的根项目似乎没有应用任何插件,只有子项目才应用。因此,您的根项目中不会有插件war
之类的插件特定任务。