当前位置: 首页 > 面试题库 >

找不到与文件模式“ ** / target / *。apk”匹配的工件

杭镜
2023-03-14
问题内容

我在尝试编译一个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:

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <parent>
        <groupId>com.proj</groupId>
        <artifactId>android</artifactId>
        <version>1.1-SNAPSHOT</version>
    </parent>

    <groupId>com.proj.android.project.mobile</groupId>
    <artifactId>project-android</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <packaging>apk</packaging>
    <name>project Android Application</name>
    <description>project mobile application for android client</description>
    <url>http://maven.apache.org</url>

    <issueManagement>
        <system>jira</system>
        <url>http://www/jira/browse/${jira.project.key}</url>
    </issueManagement>
    <scm>
        <connection>scm:svn:http://svn/android/project-mobile-app/trunk/</connection>
        <developerConnection>scm:svn:https://svn/android/project-mobile-app/trunk/</developerConnection>
        <url>http://svn/web/wsvn/android/project-mobile-app/</url>
    </scm>
    <dependencyManagement>
        <dependencies>
            <!-- Android dependencies -->
            <dependency>
                <groupId>android</groupId>
                <artifactId>android</artifactId>
                <scope>provided</scope>
                <version>4.0.3_r2</version>
            </dependency>
            <dependency>
                <groupId>android</groupId>
                <artifactId>support-v4</artifactId>
                <version>r6</version>
            </dependency>
            <dependency>
                <groupId>junit</groupId>
                <artifactId>junit</artifactId>
                <scope>test</scope>
                <version>${junit.version}</version>
            </dependency>
            <dependency>
                <groupId>org.apache.maven</groupId>
                <artifactId>maven-plugin-api</artifactId>
                <version>3.1</version>
            </dependency>
            <dependency>
                <groupId>bouncycastle</groupId>
                <artifactId>bcprov-jdk14</artifactId>
                <version>138</version>
            </dependency>
            <!-- <dependency> -->
            <!-- <groupId>com.proj.android.sample</groupId> -->
            <!-- <artifactId>pdf-viewer-ng</artifactId> -->
            <!-- <type>apklib</type> -->
            <!-- <version>1.0-SNAPSHOT</version> -->
            <!-- </dependency> -->
            <dependency>
                <groupId>com.proj.project.client</groupId>
                <artifactId>project-client</artifactId>
                <version>${project-client.version}</version>
            </dependency>
        </dependencies>
    </dependencyManagement>
    <build>
        <finalName>${project.artifactId}</finalName>
        <sourceDirectory>build</sourceDirectory>
        <directory>${project.basedir}/assets/build</directory>
        <pluginManagement>
            <plugins>
                <plugin>
                    <groupId>com.jayway.maven.plugins.android.generation2</groupId>
                    <artifactId>android-maven-plugin</artifactId>
                    <version>2.4</version>
                    <configuration>
                        <extractDuplicates>true</extractDuplicates>
                    </configuration>
                </plugin>

            </plugins>
        </pluginManagement>
    </build>
    <properties>
        <android.version>4.0.3_r2</android.version>
        <android.sdk>15</android.sdk>
        <android.emulator.avd>AVD_15_4_0_3</android.emulator.avd>
        <jira.project.key>UNIAPPAND-1</jira.project.key>
        <junit.version>4.11</junit.version>
        <com.proj.project.client>1.0-SNAPSHOT</com.proj.project.client>
    </properties>
</project>

我认为我的问题来自目标目录,因为jenkins提到了这一点。我在詹金斯(Jenkins)有3个目录:assets,res et
src是否应该在这三个文件夹中添加更多内容?例如lib或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上归档工件(占用空间)吗?



 类似资料:
  • 通配符 # glob_asterisk.py import glob for name in sorted(glob.glob('dir/*')): print(name) # glob_subdir.py import glob print('Named explicitly:') for name in sorted(glob.glob('dir/subdir/*')):

  • 问题内容: 在Bash中,我想创建一个函数,该函数返回与特定模式匹配的最新文件的文件名。例如,我有一个文件目录,例如: 我想要以“ b2”开头的最新文件。我该怎么做呢?我需要在脚本中包含它。 问题答案: 该命令具有按时间排序的参数。然后,您可以使用抓取第一个(最新的)。 但请注意:为什么不应该解析ls的输出 我个人的看法:仅当文件名包含空格或换行符之类的有趣字符时,解析才是危险的。如果可以保证文件

  • null 我正在CentOS Linux版本7.3.1611的虚拟环境中使用Python2.7。 我正在运行一个使用matplotlib.pyplot的脚本,运行时会出现以下错误 我试着用- 然后我甚至安装了- 并且它表示包已经安装并且 我已经重新设置了我的虚拟环境,看看我是否错过了什么,但我无法到达任何地方。请救命!

  • 本文向大家介绍Rust 与守卫的条件模式匹配,包括了Rust 与守卫的条件模式匹配的使用技巧和注意事项,需要的朋友参考一下 示例 可以根据独立于使用if防护匹配的值的值来匹配模式: 这将显示“不可用”。

  • dir=“某物”\temp。 我是新来的,任何帮助都很感激。我认为这是字符转义…但我不确定,我想使用正则表达式,但我想我会遇到同样的问题。 预期 C:\\users\\admin\\appdata\\local\\ dir=c:\\users\\admin\\appdata\\local\\temp