- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个JSF,Spring,Hibernate项目。
在页面底部,我必须有版本号。
使用jenkins(hudson)我安装了“Parameterized Build”。但是似乎没有用。如何获取jenkins的内部版本号,maven项目版本,svn修订版号并将其显示在我的JSF页面上?
我在网络上找不到有用的示例。
谢谢
main/resources/com/example/build.properties
custom_version = Test 1.0
pom_version = ${pom_version}
svn_revision = ${svn_revision}
build_tag = ${build_tag}
build_number = ${build_number}
build_id = ${build_id}
<?xml version="1.0" encoding="UTF-8"?>
<faces-config version="2.0" xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xi="http://www.w3.org/2001/XInclude" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-facesconfig_2_0.xsd">
<application>
<resource-bundle>
<base-name>com.example.build</base-name>
<var>build</var>
</resource-bundle>
</application>
</faces-config>
<ui:composition xmlns="http://www.w3.org/1999/xhtml"
xmlns:ui="http://java.sun.com/jsf/facelets"
xmlns:f="http://java.sun.com/jsf/core"
xmlns:h="http://java.sun.com/jsf/html"
>
<center>
<p>Version: #{build['custom_version']}.#{build['build_tag']}.#{build['build_number']}.#{build['build_id']}.#{build['svn_revision']}</p>
</center>
</ui:composition>
custom_version = ${env.CUSTOM_VERSION}
custom_message = ${env.CUSTOM_MESSAGE}
pom_version = ${pom.version}
pom_name = ${pom.name}
pom_description = ${pom.description}
svn_revision = ${env.SVN_REVISION}
build_tag = ${env.JOB_NAME}
build_number = ${env.BUILD_NUMBER}
build_id = ${env.BUILD_ID}
<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>
<groupId>com.example</groupId>
<artifactId>jenkins_build_deploy</artifactId>
<packaging>war</packaging>
<version>1.0.0</version>
<name>jenkins_build_deploy</name>
<description>jenkins_build_deploy application</description>
<url>http://example.com/jenkins_build_deploy</url>
<scm>
<url>http://127.0.0.1/dummy</url>
<connection>scm:svn:http://127.0.0.1/dummy</connection>
<developerConnection>scm:svn:https://127.0.0.1/dummy</developerConnection>
<tag>HEAD</tag>
</scm>
<build>
<finalName>jenkins_build_deploy</finalName>
<resources>
<resource>
<directory>${basedir}/src/main/resources</directory>
<filtering>true</filtering>
<includes>
<include>**/*.properties</include>
</includes>
</resource>
<resource>
<directory>${basedir}/src/main/resources</directory>
<filtering>false</filtering>
<excludes>
<exclude>**/*.properties</exclude>
</excludes>
</resource>
</resources>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>2.5.1</version>
<configuration>
<source>1.6</source>
<target>1.6</target>
<encoding>UTF-8</encoding>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<version>2.1-alpha-2</version>
<configuration>
<webappDirectory>${project.build.directory}/${project.artifactId}</webappDirectory>
<warName>${project.artifactId}</warName>
<webResources>
<resource>
<filtering>true</filtering>
<directory>${basedir}/src/main/resources</directory>
<directory>${project.build.directory}</directory>
<directory>${project.build.sourceDirectory}</directory>
<targetPath>WEB-INF/classes</targetPath>
</resource>
</webResources>
<nonFilteredFileExtensions>
<nonFilteredFileExtension>gif</nonFilteredFileExtension>
<nonFilteredFileExtension>ico</nonFilteredFileExtension>
<nonFilteredFileExtension>jpg</nonFilteredFileExtension>
<nonFilteredFileExtension>png</nonFilteredFileExtension>
<nonFilteredFileExtension>pdf</nonFilteredFileExtension>
<nonFilteredFileExtension>jasper</nonFilteredFileExtension>
</nonFilteredFileExtensions>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-resources-plugin</artifactId>
<version>2.6</version>
<executions>
<execution>
<id>copy-resources</id>
<!-- here the phase you need -->
<phase>validate</phase>
<goals>
<goal>copy-resources</goal>
</goals>
<configuration>
<outputDirectory>${basedir}/target/WEB-INF/classes</outputDirectory>
<resources>
<resource>
<filtering>true</filtering>
<directory>${basedir}/src/main/resources</directory>
<directory>${project.build.directory}</directory>
<directory>${project.build.sourceDirectory}</directory>
</resource>
</resources>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.glassfish.maven.plugin</groupId>
<artifactId>maven-glassfish-plugin</artifactId>
<version>2.1</version>
<configuration>
<debug>true</debug>
<echo>true</echo>
<terse>true</terse>
<force>true</force>
<!-- <autoCreate>true</autoCreate> -->
<!-- <skip>${test.int.skip}</skip> -->
<glassfishDirectory>${glassfish.glassfishDirectory}</glassfishDirectory>
<user>${glassfish.user}</user>
<adminPassword>${glassfish.adminPassword}</adminPassword>
<!-- <passwordFile>${glassfish.home}/domains/${project.artifactId}/master-password</passwordFile> -->
<domain>
<name>${glassfish.domain.name}</name>
<host>${glassfish.domain.host}</host>
<adminPort>${glassfish.domain.adminPort}</adminPort>
</domain>
<components>
<component>
<name>${project.artifactId}</name>
<artifact>${project.build.directory}/${project.artifactId}.war</artifact>
</component>
</components>
</configuration>
<executions>
<execution>
<goals>
<goal>redeploy</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.12.4</version>
<dependencies>
<dependency>
<groupId>org.apache.maven.surefire</groupId>
<artifactId>surefire-junit47</artifactId>
<version>2.12.4</version>
</dependency>
</dependencies>
</plugin>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>buildnumber-maven-plugin</artifactId>
<version>1.1</version>
<executions>
<execution>
<id>buildnumber</id>
<phase>validate</phase>
<goals>
<goal>create</goal>
</goals>
</execution>
</executions>
<configuration>
<doCheck>false</doCheck>
<doUpdate>false</doUpdate>
<revisionOnScmFailure>unknownbuild</revisionOnScmFailure>
<format>{0,number}</format>
<items>
<item>buildNumber</item>
</items>
</configuration>
</plugin>
</plugins>
</build>
<dependencies>
<dependency>
****
</dependency>
</dependencies>
</project>
<?xml version='1.0' encoding='UTF-8'?>
<maven2-moduleset plugin="maven-plugin@1.501">
<actions/>
<description>jenkins_build_deploy</description>
<keepDependencies>false</keepDependencies>
<properties>
<hudson.model.ParametersDefinitionProperty>
<parameterDefinitions>
<hudson.model.StringParameterDefinition>
<name>CUSTOM_VERSION</name>
<description>custom_version = Test 1.0 ${env.CUSTOM_VERSION}</description>
<defaultValue>1.0.1</defaultValue>
</hudson.model.StringParameterDefinition>
<hudson.model.StringParameterDefinition>
<name>CUSTOM_MESSAGE</name>
<description>Test Env.</description>
<defaultValue>Test Env.</defaultValue>
</hudson.model.StringParameterDefinition>
</parameterDefinitions>
</hudson.model.ParametersDefinitionProperty>
</properties>
<scm class="hudson.scm.SubversionSCM" plugin="subversion@1.45">
<locations>
<hudson.scm.SubversionSCM_-ModuleLocation>
<remote>http://example.com/svn/jenkins_build_deploy/trunk</remote>
<local>.</local>
<depthOption>infinity</depthOption>
<ignoreExternalsOption>false</ignoreExternalsOption>
</hudson.scm.SubversionSCM_-ModuleLocation>
</locations>
<excludedRegions/>
<includedRegions/>
<excludedUsers/>
<excludedRevprop/>
<excludedCommitMessages/>
<workspaceUpdater class="hudson.scm.subversion.UpdateUpdater"/>
<ignoreDirPropChanges>false</ignoreDirPropChanges>
<filterChangelog>false</filterChangelog>
</scm>
<canRoam>true</canRoam>
<disabled>false</disabled>
<blockBuildWhenDownstreamBuilding>false</blockBuildWhenDownstreamBuilding>
<blockBuildWhenUpstreamBuilding>false</blockBuildWhenUpstreamBuilding>
<triggers class="vector"/>
<concurrentBuild>false</concurrentBuild>
<rootModule>
<groupId>com.example</groupId>
<artifactId>jenkins_build_deploy</artifactId>
</rootModule>
<goals>clean install -Dmaven.test.skip=true glassfish:deploy</goals>
<aggregatorStyleBuild>true</aggregatorStyleBuild>
<incrementalBuild>false</incrementalBuild>
<perModuleEmail>true</perModuleEmail>
<ignoreUpstremChanges>false</ignoreUpstremChanges>
<archivingDisabled>false</archivingDisabled>
<resolveDependencies>false</resolveDependencies>
<processPlugins>false</processPlugins>
<mavenValidationLevel>-1</mavenValidationLevel>
<runHeadless>false</runHeadless>
<disableTriggerDownstreamProjects>false</disableTriggerDownstreamProjects>
<settings class="jenkins.mvn.DefaultSettingsProvider"/>
<globalSettings class="jenkins.mvn.DefaultGlobalSettingsProvider"/>
<reporters/>
<publishers/>
<buildWrappers/>
<prebuilders>
<hudson.tasks.Shell>
<command>echo CUSTOM_VERSION: $CUSTOM_VERSION
echo CUSTOM_MESSAGE: $CUSTOM_MESSAGE</command>
</hudson.tasks.Shell>
</prebuilders>
<postbuilders/>
<runPostStepsIfResult>
<name>FAILURE</name>
<ordinal>2</ordinal>
<color>RED</color>
</runPostStepsIfResult>
</maven2-moduleset>
最佳答案
好吧,我建议您使用一个属性文件,通过Maven过滤将这些值替换为可替换的文件。
例如,将属性文件设置为如下所示:
custom_version = Test 1.0
pom_version = ${pom.version}
svn_revision = ${buildNumber}
build_tag = ${build_tag} # Will probably need your own implementation
build_number = ${env.BUILD_NUMBER}
build_id = ${env.BUILD_ID}
<project ...>
<build>
<resources>
<resource>
<directory>${basedir}/src/main/resources</directory>
<filtering>true</filtering>
</resource>
</resources>
<plugins>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>buildnumber-maven-plugin</artifactId>
<version>1.1</version>
<executions>
<execution>
<phase>validate</phase>
<goals>
<goal>create</goal>
</goals>
</execution>
</executions>
<configuration>
<doCheck>true</doCheck>
<doUpdate>true</doUpdate>
</configuration>
</plugin>
</plugins>
</build>
</project>
关于jsf - 如何获取jenkins的内部版本号,svn修订版号...并将其显示在我的JSF页面上?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14976824/
官方镜像下载实在是慢,于是开通了阿里云开发者帐号, 阿里的文档是错误的, 复制代码 代码如下: sudo sed -i "s|ExecStart=/usr/
我有一个gradle buildscript。在此脚本中,我设置了一些出版物。 在脚本的后面,我有一个任务,该任务从文件读取Buildnumber并增加它。比项目的版本将被更改。 现在我的问题是:可以
下面的代码是我用来添加到数据库中已创建的表的代码。我仍然收到查询错误,错误:您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,了解在第 1 行 'Location, Horse
三角形应该是这样的 1 11 111 1111 11111 111111 行数由用户输入,然后转化为函数注意:没有数组,必须有一个循环(while或for),不能嵌套循环 我得到的最接近的是一个有 2
我的代码 idxcell{:,1} 对于 1:10 迭代给出了以下结果: ans = 9 10 14 15 19 20 24 25
当您这样做时hg log在文件上,仅列出发生更改的修订。我想看看目录中所有文件的最新修订版是什么。 (在文件级别而不是行级别考虑 hg blame。) 我还以为hg log -l 1 *可能有用,但它
我知道,这个话题已经有据可查 here .但我找不到正确的答案。 几年前,我们的老板对一个同事说,他必须把ALL放到SVN里。他做了几次,总而言之,大约是 7.2 演出 .这现在已经完全过时了,必须从
我正在制作一个 twitter 客户端,并且正在评估保护用户登录信息的各种方法。 重要提示:我需要保护用户的数据免受其他应用程序的影响。例如,想象一下如果机器人开始从用户桌面上运行的应用程序中窃取 T
我想知道这些词是否彼此同义? 最佳答案 是的,它们是大多数用途的等效术语。 当您获得“变更集” 5100或“修订” 5100时,您正在讨论的是同一件事。从技术上讲,变更集是其中包含的更改(与大多数源代
我们的项目中有几个远程子存储库,它们的地址最近从 http://host/path 移到了至 http://other_host/path .怎么能回到上个月的修订版,Mercurial 认为可以在
我想 checkout Subversion 中文件夹的特定修订版使用命令行。 我在 TortoiseProc.exe 中没有看到用于指定修订版本号的选项, TortoiseProc.exe /com
如何更改 r0 ,使其看起来像我在创建存储库时添加了 .hgignore 或在当前的 r0 之前插入提交? 我刚刚使用 hgsvn 将一个巨大的 SVN 存储库转换为 Mercurial。花了几个小时
据我所知,CouchDB 修订版不应被视为文档版本控制意义上的修订版。从其他帖子来看,它们似乎被视为临时数据,直到调用粗粒度的紧凑操作为止。 我的问题是,如果我有兴趣使用 CouchDB 来维护文档以
我想从存储库中删除最后一个修订版(或最后 n 个修订版)。 怎么做? 是否可以从 project/db/revs/ 和 project/db/revprops/ 中删除 svn 修订文件? 最佳答案
如何(如果可能的话)在文件中搜索字符串(包括其所有修订版本)? 这样做的原因是我知道某些字符串过去曾在我的文件 foo.bar 中的某个地方,但后来被删除了。该文件有很多修订,因此手动搜索非常耗时。我
我的 PC (Windows Server 2012) 上安装了 TortoiseSVN 1.8.7 + VisualSVN Server 2.7.7。最近我的同事告诉我,当他尝试更新时,在对话框列出
我用一个简单的水平“nowrap”css 编写了一个站点,其中 img 并排 float 。我也隐藏了滚动条。 侧滚可以通过正常的垂直鼠标滚轮滚动来完成(见我的元素网址 因为图像都是 1400x850
我想弄清楚为什么有人删除了 bzr 存储库中的文件。我知道它以前在那里,但现在它不见了。从那时起已经有数百次提交。没有人愿意逐一阅读。我只是想找到文件被删除时的修订号,以找出它被删除的原因。 bzr
我喜欢做的一件常见事情是将我的工作副本恢复到特定的修订版,进行一些测试,然后将其带回我当前的主人的头上。过去我天真地做了一个“git checkout hash”只是为了失去理智。从那以后,我了解到我
我刚刚开始研究 Alembic,来自 Django,我们有 South迁移我们的数据库模式(包括 soon),它使用友好的旧固定宽度数字,如 0037_fix_my_schema.py谈到应用迁移的顺
我是一名优秀的程序员,十分优秀!