android - 如何 Maven-ise 一个 ActionBarSherlock 项目?

标签 android maven jenkins

我有一个在 IntelliJ 中构建良好的 Java Android 项目,但我想在运行 Jenkins(位于 Cloudbees)的 CI 服务器上构建它。与其乱用 ant,不如使用 maven 来处理 ABS 依赖性似乎更明智。我创建了一个简单的 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.myapp</groupId>
    <artifactId>android</artifactId>
    <version>1.0.0</version>
  </parent>
  <groupId>com.myapp</groupId>
  <artifactId>myapp</artifactId>
  <version>1.0.1-SNAPSHOT</version>
  <name>myapp</name>
  <packaging>pom</packaging>

  <properties>
    <android.version>4.2.1_r1</android.version>
    <android.sdk.platform>17</android.sdk.platform>
    <google.android.maps.version>17</google.android.maps.version>
  </properties>

  <dependencies>
    <dependency>
      <groupId>com.actionbarsherlock</groupId>
      <artifactId>actionbarsherlock</artifactId>
      <version>4.1.0</version>
      <type>apklib</type>
    </dependency>
  </dependencies>

</project>

当我在我的本地机器上运行它时,我得到这个:

[ERROR]   The project com.myapp:myapp:1.0.1-SNAPSHOT (C:\...\myapp\pom.xml) has 1 error
[ERROR]     Non-resolvable parent POM: Failure to find com.myapp:android:pom: 1.0.0 in http://repo1.maven.org/maven2 was cached in the local repository, resolution will not be reattempted until the update interval of central has elapsed or updates are forced and 'parent.relativePath' points at wrong local POM @ line 4, column 11 -> [Help 2]

我不知道那是什么意思。谁能帮我理解它失败的原因,这个错误意味着什么?如果您对改进 ActionBarSherlock Android 应用程序以使其在 Jenkins/cloudbees 上运行有任何建议,我将不胜感激。

最佳答案

可以使用 ivy plugin将 Maven 与 ANT 构建集成。

以下任务将下载“actionbarsherlock-4.2.0.apklib”文件并将其(及其依赖项)添加到 ANT 路径“compile.path”中:

<ivy:cachepath pathid="compile.path">
    <dependency org="com.actionbarsherlock" name="actionbarsherlock" rev="4.2.0" conf="default"/>
</ivy:cachepath>

您的 Maven 依赖项不起作用的原因可能是因为 Maven 模块正在使用“apklib”的打包类型。这意味着以下可能会起作用:

<dependency>
  <groupId>com.actionbarsherlock</groupId>
  <artifactId>actionbarsherlock</artifactId>
  <version>4.2.0</version>
</dependency>

有关详细信息,请参阅:

关于android - 如何 Maven-ise 一个 ActionBarSherlock 项目?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13707121/

相关文章:

java - Android CheckedTextView 未正确检查

android - 在jetpack compose LazyColumn中获取最后一个可见的项目索引

java - 在 maven 本地仓库中看不到 sikuli-java lib

java - 是否有类似于集成测试的预集成测试和后集成测试的类名约定

android - 使用 jenkins 构建时找不到 Kotlin 类

macos - 系统重启时自动启动 Jenkins 服务

android - 无法使用 API 级别 10 创建 Android 项目,因为没有可用的兼容主题

java - 聆听不同类(class)的 Mediaplayer 完成情况

java - Spring/JPA/persistence实体属性字段不能是final的?

linux - 在 Linux 机器中删除工作区后 Maven 执行