我是IntelliJ和Java的新手,但我有很多TeamCity经验,主要是构建.Net项目。
我在IntelliJ中创建了一个非常简单的 Android Library 项目,基本上只有一个使用RxJava(Reactive Extensions for Java)的类。我使用项目结构 - >在IntelliJ中添加了Rx库图书馆 - > 来自Maven 。我添加的实际库是com.netflix.rxjava:rxjava-android:0.19.6
,它会引入com.netflix.rxjava:rxjava-core:0.19.6
。
这非常出色,我的项目在IntelliJ中编译,甚至无需安装Maven。不错的工作,JetBrains。
但是,当我尝试使用IntelliJ-IDEA运行程序在TeamCity中构建项目时,该项目无法编译。 Bad JetBrains!
我在rx.*
的所有引用上都出错了,正如我所说的那样,我的工作站完全可以正常工作。 TeamCity的错误如下所示:
C:\BuildAgent\work\eefd62e2c3082b56\src\com\example\TigraAndroidUtilities\ObservableModel.java:3: package rx does not exist import rx.Observable; ^ C:\BuildAgent\work\eefd62e2c3082b56\src\com\example\TigraAndroidUtilities\ObservableModel.java:4: package rx.subjects does not exist import rx.subjects.BehaviorSubject; ^ C:\BuildAgent\work\eefd62e2c3082b56\src\com\example\TigraAndroidUtilities\ObservableModel.java:18: cannot find symbol symbol: class BehaviorSubject location: class com.example.TigraAndroidUtilities.ObservableModel private BehaviorSubject modelStream; ^ C:\BuildAgent\work\eefd62e2c3082b56\src\com\example\TigraAndroidUtilities\ObservableModel.java:63: cannot find symbol symbol: class Observable location: class com.example.TigraAndroidUtilities.ObservableModel public Observable toObservable() ^ C:\BuildAgent\work\eefd62e2c3082b56\src\com\example\TigraAndroidUtilities\ObservableModel.java:28: cannot find symbol symbol: variable BehaviorSubject location: class com.example.TigraAndroidUtilities.ObservableModel modelStream = BehaviorSubject.create(modelData); ^ C:\BuildAgent\work\eefd62e2c3082b56\src\com\example\TigraAndroidUtilities\ObservableModel.java:65: cannot find symbol symbol: variable Observable location: class com.example.TigraAndroidUtilities.ObservableModel if (completed) { return Observable.empty(); } ^
以下是我尝试的内容:
这有点令人沮丧,我一直在修补它,但似乎没有任何工作,基本上我不知道我做错了什么。我一定错过了某个地方。如何在TeamCity中正确运行此构建?
答案 0 :(得分:0)
从 TeamCity 9.1 开始,其IDEA运行程序无法再构建 Maven 模块,也无法自动下载外部工件 Maven Central 。
基本上,你需要的是:
使用 TeamCity Maven 跑步者和 maven-dependency-plugin
逐个下载外部工件,如{ {3}}回答。,e。 G:
mvn org.apache.maven.plugins:maven-dependency-plugin:3.0.0:get com.netflix.rxjava:rxjava-android:0.19.6
您需要与IDEA项目中的依赖项数量一样多的 Maven 构建步骤,并且这些步骤必须先于IDEA运行器构建步骤。
在构建配置级别,将system.path.macro.MAVEN.REPOSITORY
系统属性设置为%env.HOME%/.m2/repository
。
就是这样。
快乐建筑!