我在尝试编译一个android项目时从Jenkins控制台获得了这个输出:只是注意到我没有对主类进行任何更改这是jenkins控制台:
[INFO] BUILD SUCCESS [INFO] ------------------------------------------------------------------------ [INFO] Total time: 10.701s [INFO] Finished at: Thu May 29 17:56:45 CEST 2014 [INFO] Final Memory: 24M/491M [INFO] ------------------------------------------------------------------------ [JENKINS] Archiving /var/opt/jenkins/workspace/Android-Project-App/trunk/pom.xml to com.proj.android.project.mobile/project-android/0.0.1-SNAPSHOT/project-android-0.0.1-SNAPSHOT.pom [JENKINS] Archiving /var/opt/jenkins/workspace/Android-Project-App/trunk/assets/build/project-android.apk to com.proj.android.project.mobile/project-android/0.0.1-20140529.155643-5/project-android-0.0.1-20140529.155643-5.apk [JENKINS] Archiving /var/opt/jenkins/workspace/Android-Project-App/trunk/assets/build/project-android.jar to com.proj.android.project.mobile/project-android/0.0.1-20140529.155643-5/project-android-0.0.1-20140529.155643-5.jar channel stopped Archiving artifacts ERROR: No artifacts found that match the file pattern "**/target/*.apk". Configuration error? ERROR: ‘**/target/*.apk’ doesn’t match anything: ‘**’ exists but not ‘**/target/*.apk’ Build step 'Archive the artifacts' changed build result to FAILURE IRC notifier plugin: Sending notification to: #jenkins Finished: FAILURE
这是我的pom:
4.0.0 com.proj android 1.1-SNAPSHOT com.proj.android.project.mobile project-android 0.0.1-SNAPSHOT apk project Android Application project mobile application for android client http://maven.apache.org jira http://www/jira/browse/${jira.project.key} scm:svn:http://svn/android/project-mobile-app/trunk/ scm:svn:https://svn/android/project-mobile-app/trunk/ http://svn/web/wsvn/android/project-mobile-app/ android android provided 4.0.3_r2 android support-v4 r6 junit junit test ${junit.version} org.apache.maven maven-plugin-api 3.1 bouncycastle bcprov-jdk14 138 com.proj.project.client project-client ${project-client.version} ${project.artifactId} build ${project.basedir}/assets/build com.jayway.maven.plugins.android.generation2 android-maven-plugin 2.4 true 4.0.3_r2 15 AVD_15_4_0_3 UNIAPPAND-1 4.11 1.0-SNAPSHOT
我认为我的问题来自目标目录,因为詹金斯提到了这一点.我在jenkins有3个目录:assets,res et src我应该添加更多这三个文件夹吗?例如libs或target ??
该档案文物生成后步骤不关心你的POM.它所做的只是查找工作区文件夹中的文件,即$WORKSPACE
(也可以通过http://[jenkins-url]/job/[job-name]/ws
)查找文件,并将这些文件存档在Jenkin的构建历史记录中.
您尝试存档的文件必须存在于$WORKSPACE
.从您的配置中,您尝试存档**/target/*.apk
,这意味着"在任何路径下,target
包含任何文件和扩展名的文件夹.apk
".它无法找到,因为你的工作区没有target
任何文件夹,因此ERROR: ‘**/target/*.apk’ doesn’t match anything: ‘**’ exists but not ‘**/target/*.apk’
在POM文件中,您有以下行:
<directory>${project.basedir}/assets/build</directory>
这是标识构建文件最终位置的内容.它[base-dir-of-pom]/assets/build
不是target
.
此外,形成您的控制台日志:
[JENKINS] Archiving /var/opt/jenkins/workspace/Android-Project-App/trunk/assets/build/project-android.apk
这进一步证明您的.apk
工件实际上位于其下trunk/assets/build
对于Archive Artifacts文件模式,您需要使用:
**/assets/build/*.apk
事实上,你可以使用:
**/build/*.apk
甚至
**/*.apk
但问题是:当你已经使用Maven存档工件时,你真的想要在Jenkins(需要空间)上存档工件吗?