Tag: jenkins

自动检查Java文件以编码标准符合性

我正在从事Java开发。 我最近遇到了一种情况,我必须遵守编码标准:成员和方法排序,命名约定,修饰符序列。 我正在考虑自动检查合规性的方法,或者生成某种进行重新排序的机制。 我们正在使用Eclipse开发,但该技术将是开放的。 它可能的一种工作方式是生成外部构建器工具并将其添加到项目中。 缺点是它会自动应用于所有文件,这可能会遇到遗留代码的问题,将错误计数扩大到不再是合理的合理度量标准的程度。 此外,它使代码审查变得更加困难,这是不希望的。 另一种方式是某种只具有信息function的解析器。 我们可以在Jenkins中运行一个进程,这肯定会起作用,但这也意味着代码已经通过了审核,对于代码合规性检查通常有点迟。 是否有建议甚至简单的方法将这些function集成到IDE,源控制系统(Mercurial)甚至Jenkins中? 这在其他地方如何执行?

将参数传递给Maven发布版本

我正在尝试使用Maven发布一个库并执行一个站点部署到sourceforge(我先创建了一个交互式shell)。 该版本由Jenkins工作完成(使用Jenkins的Maven Release Plugin)。 我试过了: -X -e -Dresume=false -Dusername=puce release:prepare release:perform -Darguments=”-Dusername=puce” 和 -X -e -Dresume=false -Dusername=puce -Darguments=-Dusername=puce release:prepare release:perform 但两次工作都挂在现场:部署第一个模块: [INFO] — maven-site-plugin:3.2:deploy (default-deploy) @ myproject-parent — [INFO] Parent project loaded from repository: myGroupId:myOtherproject-parent:pom:1.0 [INFO] Parent project loaded from repository: myGroupId:myOtherproject-parent:pom:1.0 Using private key: /opt/jenkins/.ssh/id_dsa 当我停止工作时,最后会打印以下内容: Password for ${username}@shell.sourceforge.net: channel stopped 这可能意味着$ {username}未解决。 如何解析$ […]

在没有maven或ant的Jenkins中自动运行JUnit测试

我目前正在与Jenkins建立一个持续集成工具。 我希望每次构建时都运行JUnit测试。 我的问题是,没有一个将要测试的项目使用maven或ant。 所以我想知道是否可以在没有maven或ant的情况下运行这些测试,如果是,我该怎么做? 提前感谢您的回答

使用不同的设置将Maven工件部署到多个存储库

我们有许多Java项目,它们是使用Jenkins构建的CI。 这些部署到我们自己的Nexus服务器就好了。 问题是,我们需要将这些库提供给第三方,但没有源代码。 因此,对于每个项目,在Nexus中我们有: 发布我们开发人员的存储库(包括已部署的源代码) 我们开发人员的快照存储库(包括已部署的源代码) 第三方发布存储库(仅限JAR + POM) (并且很高兴): 第三方快照存储库(仅限JAR + POM)用于第三方夜间构建 问题是:在Jenkins / Nexus世界中,这通常是如何处理的? 我宁愿在Jenkins中有一个单独的Job,它可以“自动”处理CI构建和发布(artefact部署)过程。 目前我在“main root pom.xml”中使用了多个配置文件(包含在所有项目中): […] default releases Release http://path/to/nexus/content/repositories/releases/ snapshots Snapshot http://path/to/nexus/content/repositories/snapshots/ false third-party releases Release http://path/to/nexus/content/repositories/third-party/ snapshots Snapshot http://path/to/nexus/content/repositories/third-party-snapshots/ false 在Maven文档中,似乎无法在同一构建生命周期中使用多个存储库,更不用说我们需要/不需要基于目标repo的源。 我可以使用Maven“目标和选项”在Jenkins中创建一个Job,然后使用“默认”数据clean deploy -P third-party ,然后添加Post-build操作 – “将工件部署到Maven存储库” – 但在这种情况下,只有SNAPSHOT会同时通过Jenkins Maven Release Plug-in发布的repo和artefacts只进入一个存储库。 任何实用的想法如何在不过度复杂CI作业层次结构的情况下实现这一目标? 提前致谢!

在JAVA中通过API更改Jenkins构建名称和描述

我正在尝试使用Java更改Jenkins的构建#并通过REST API构建描述。 我可以看到,在下面的URL中,这些人试图使用一些curl代码更改构建描述, 修改Jenkins描述构建 我不知道他是如何通过curl命令实现它的。 请帮忙! http://localhost:8080/job///api/

通过我的应用程序部署获得404

jenkins表明构建成功(见下面的日志),我可以看到战争 /app-root/runtime/repo/target/0.1-MVP tomcat webapps(jwboss / webapps)仅包含ROOT.war。 我如何导航到我部署的应用程序? 我正在使用tomcat装备。 是否有服务器管理器UI? (像tomcat manager这样的东西)不知道它是否重要,但我使用Spring作为我的应用程序 我试过了: .rhcloud.com/ .rhcloud.com// 我两个都得到404 http://mirror1.ops.rhcloud.com/nexus/content/groups/public/com/thoughtworks/xstream/xstream/1.3.1/xstream-1.3.1.jar(422 KB,2925.7 KB /秒)[INFO ]打包webapp [INFO]在[/var/lib/openshift/52dbe400e0b8cdce430000d0/app-root/runtime/repo/target/0.1-MVP]中组装webapp [initial] [INFO]处理war项目[INFO]复制webapp资源[/ var / lib / openshift / 52dbe400e0b8cdce430000d0 / app-root / runtime / repo / src / main / webapp] [INFO] Webapp汇编于[531 msecs] [INFO]建立战争:/ var / lib / openshift / 52dbe400e0b8cdce430000d0 / app-root […]

java.lang.IllegalStateException:您需要在此活动中使用Theme.AppCompat主题(或后代)

我试图运行我的Android应用程序时收到此错误。 奇怪的是:它只发生在Android应用程序与Jenkins构建(和签名)时。 当我使用eclipse中的本地apk文件并将其推送到我的设备(或模拟器)时,一切正常 有任何想法吗? 编辑:AndroidManifest.xml 而themes.xml文件: @style/MyActionBar @drawable/ic_up_arrow true @android:color/white @null @style/MyActionBar @drawable/ic_up_arrow @color/my_highlight @color/my_highlight

为什么InetAddress.getLocalHost()。getHostName()返回与bash“hostname”不同的值?

我有一个build.gradle任务,就像我的开发盒上的冠军一样,生成一个属性文件,记录生成构建的机器的名称。 逻辑很简单…… def hostname = InetAddress.getLocalHost().getHostName(); 在我的开发框中,这总是产生与从bash shell中输入主机名相同的值。 bobk-mbp:DM_Server bobk$ hostname bobk-mbp.local 但是,在我们的jenkins CI服务器上,bash hostname返回一个东西,但是我调用了InetAddress.getLocalHost()。getHostName(); 返回别的东西。 需要在jenkins机器上更改以使这两个返回相同的值?

Maven未能在jenkins解析POM

我有这个简单的maven项目,包含一些常用的测试工具。 它在本地构建,但在jenkins上我得到了这个奇怪的错误(见下文)。 其他信息: 它使用maven在本地构建 设置与我们所有其他jenkins项目相同(非常基本) 其他jenkins构建工作得很好 我尝试删除/root/.jenkins/workspace/testtools文件夹 我尝试删除构建并给它一个新名称 磁盘未满 我没有在其他地方找到有关此特定问题的任何有用信息。 ** Parsing POMs ERROR: Failed to parse POMs hudson.maven.MavenEmbedderException: 1 problem was encountered while building the effective settings [FATAL] Non-readable settings /root/.jenkins/workspace/testtools: /root/.jenkins/workspace/testtools (Is a directory) @ /root/.jenkins/workspace/testtools** at hudson.maven.MavenEmbedder.(MavenEmbedder.java:128) at hudson.maven.MavenEmbedder.(MavenEmbedder.java:109) at hudson.maven.MavenEmbedder.(MavenEmbedder.java:136) at hudson.maven.MavenUtil.createEmbedder(MavenUtil.java:212) at hudson.maven.MavenModuleSetBuild$PomParser.invoke(MavenModuleSetBuild.java:1254) at hudson.maven.MavenModuleSetBuild$PomParser.invoke(MavenModuleSetBuild.java:1058) at hudson.FilePath.act(FilePath.java:909) at hudson.FilePath.act(FilePath.java:882) at […]

jenkins注入环境变量

在Jenkins的工作中,我正在执行一些驻留在前置步骤构建中的操作,例如执行shell脚本。 使用Jenkins插件“EnvInject”我想将环境变量注入我的maven构建(unit testing),以便可以在我的Javaunit testing中使用它们。 在shell脚本中我做了类似的事情: echo “ip=$IP” >> unit-test.properties 构建Jenkins时输出以下内容: [EnvInject] – Injecting environment variables from a build step. [EnvInject] – Injecting as environment variables the properties file path ‘unit-test.properties’ [EnvInject] – Variables injected successfully. 但是我的Java代码(unit testing)中没有“ip”变量。 当我对System.getProperties() and System.getenv()进行完整打印时,我没有看到“ip”已登记。 我是否需要对maven执行任何特殊操作才能将变量传递给我的Java代码? 还有别的错吗? 从这一点开始我几乎停滞不前,我确实希望从前一步中将一个key=value注入到我的Java代码中。