Hudson 서버를 통해 지속적으로 빌드 할 수있는 작은 Java 프로젝트 설정이 있습니다. post-build 단계로서 Artifactory 서버에 빌드 아티팩트를 게시하고 싶습니다. 자연스럽게, 이것을 촉진하기 위해 Hudson-Artifactory 플러그인을 사용하고 있습니다. 로컬 게시는 정상적으로 작동하는 것처럼 보입니다. 두 개의 아티팩트 (.jar 파일)와 해결 된 ivy.xml 파일을 예상대로 게시합니다. 그러나 허드슨 서버에서 빌드를 요청하면 두 개의 아티팩트 중 하나만 게시됩니다.Hudson 플러그인이 Artifactory에 모든 아티팩트를 게시하지 않음
빌드는 다음 아티팩트를 생성합니다
ftpSvc.jar
ftpSvc-lib.jar
내 ivy.xml 파일은 다음과 같다 : 두 개의 유물이 명확하게 <publications>
섹션에서라고
<?xml version="1.0" encoding="ISO-8859-1"?>
<ivy-module version="2.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="http://ant.apache.org/ivy/schemas/ivy.xsd">
<info organisation="esf"
status="integration"
module="ftpSvc"
revision="SNAPSHOT" />
<publications>
<artifact name="ftpSvc" ext="jar"/>
<artifact name="ftpSvc-lib" ext="jar" type="lib" />
</publications>
<!--list the dependencies of this project-->
<dependencies>
<dependency org="commons-net" name="commons-net" rev="1.3.0" />
</dependencies>
</ivy-module>
. 내 build.xml 파일의 빌드 타겟은 다음과 같습니다 빌드 디렉토리에서
<target name="publish_local" description="publish artifacts locally">
<echo>organisation: ${ivy.organisation}</echo>
<echo>module: ${ivy.module}</echo>
<echo>status: ${ivy.status}</echo>
<echo>revision: ${ivy.revision}</echo>
<echo>local dir: ${ivy.default.ivy.user.dir}</echo>
<ivy:publish
resolver="local"
update="true"
verwrite="true"
srcivypattern="${bundle.jar.dir}/ivy.xml"
artifactspattern="${bundle.jar.dir}/[artifact].[ext]" />
</target>
artifactspattern
잡고 정의 된 모든 유물 - 공상 아무것도 여기에 가고있다. 마지막으로, 내 ivysettings.xml 파일의 해결 체인 (서버 이름이 무죄를 보호하기 위해 변경) 다음과 같습니다
<resolvers>
<chain name="main">
<ibiblio name="main" m2compatible="true" root="http://my.server.employer.com:8080/artifactory/repo" />
<filesystem name="local">
<ivy pattern="${ivy.default.ivy.user.dir}/local/[organisation]/[module]/[revision]/ivy-[revision].xml" />
<artifact pattern="${ivy.default.ivy.user.dir}/local/[organisation]/[module]/[revision]/[artifact]-[revision].[ext]" />
</filesystem>
</chain>
</resolvers>
위에서 언급 한 로컬 잘 작품을 게시 그것은이 모든 오히려 일상적인 물건합니다. 예상대로
publish_local:
[echo] organisation: esf
[echo] module: ftpSvc
[echo] status: integration
[echo] revision: SNAPSHOT
[echo] local dir: C:\Users\myusername\.ivy2
[ivy:publish] :: publishing :: esf#ftpSvc
[ivy:publish] published ftpSvc to C:\Users\myusername\.ivy2/local/esf/ftpSvc/SNAPSHOT/ftpSvc-SNAPSHOT.jar
[ivy:publish] published ftpSvc-lib to C:\Users\myusername\.ivy2/local/esf/ftpSvc/SNAPSHOT/ftpSvc-lib-SNAPSHOT.jar
[ivy:publish] published ivy to C:\Users\myusername\.ivy2/local/esf/ftpSvc/SNAPSHOT/ivy-SNAPSHOT.xml
두 jar 파일과 해결 ivy.xml 파일이 게시 된 얻을 : 이클립스를 빌드 할 때 다음 콘솔 출력에서 들여다이다. 내 허드슨 서버에서 내가 thusly 히 구성된 Artifactory 구성 설정 (다시, 몇 가지 세부 사항이 내 진정한 슈퍼 히어로의 정체성을 모호하게 변경되었습니다)이있어 :
Artifactory 서버 : http://my.server.employer.com:8080/artifactory
대상 저장소 : target-repository
아이비 패턴 : [organisation]/[module]/[revision]ivy-[revision].xml
아티팩트 패턴 : 당신이 볼 수 있듯이 "[organisation]/[module]/[revision]/[artifact]-[revision].[ext]"
가, 아이비와 유물 패턴이 정확히 내 ivysettings.xml 파일에서 내 로컬 리졸버의 패턴과 동일. 따라서 Hudson 서버에서 빌드를 실행하면 Artifactory 서버에 정확히 동일한 아티팩트가 게시 될 것으로 예상됩니다.
이의 내 허드슨 서버에 최신 빌드에서 콘솔 출력을 살펴 보자 :
publish_local:
[echo] organisation: esf
[echo] module: ftpSvc
[echo] status: integration
[echo] revision: SNAPSHOT
[echo] local dir: /usr/share/tomcat6/.ivy2
[ivy:publish] :: publishing :: esf#ftpSvc
Collecting Module information for module: ftpSvc
Module location: /usr/share/tomcat6/.hudson/jobs/ftpSvc-ivy/workspace/trunk/out/jars/ftpSvc.jar
[ivy:publish] published ftpSvc to /usr/share/tomcat6/.ivy2/local/esf/ftpSvc/SNAPSHOT/ftpSvc-SNAPSHOT.jar
Collecting Module information for module: ftpSvc
Module location: /usr/share/tomcat6/.hudson/jobs/ftpSvc-ivy/workspace/trunk/out/jars/ftpSvc-lib.jar
[ivy:publish] published ftpSvc-lib to /usr/share/tomcat6/.ivy2/local/esf/ftpSvc/SNAPSHOT/ftpSvc-lib-SNAPSHOT.jar
Collecting Module information for module: ftpSvc
Module location: /tmp/ivy2450884590736960955.xml
[ivy:publish] published ivy to /usr/share/tomcat6/.ivy2/local/esf/ftpSvc/SNAPSHOT/ivy-SNAPSHOT.xml
Build finished triggered
Deploying artifact: http://my.server.employer.com:8080/artifactory/target-repository/esf/ftpSvc/SNAPSHOT/ftpSvc-SNAPSHOT.jar
Deploying artifact: http://my.server.employer.com:8080/artifactory/target-repository/esf/ftpSvc/SNAPSHOT/ftpSvc-SNAPSHOT.xml
Deploying build info to: http://my.server.employer.com.com:8080/artifactory/api/build
부시 전 '티 EFF의를!? 다시 한번, 로컬 게시는 Jud 및 ivy.xml 파일을 허드슨 서버의 로컬/esf/ftpSvc/SNAPSHOT/디렉토리에 게시하여 정상적으로 작동하는 것으로 보입니다. 반면에 Artifactory 플러그인은 완전히 잘못되었습니다. 두 항아리 중 하나를 게시하는 데 실패 할뿐만 아니라 ivy.xml 파일의 이름을 잘못 바꿉니다.
여기에서 일어나는 일에 대해 밝힐 수있는 허드슨/아이비/인공물 전문가가 있습니까? 정확한 동작을 보이는 여러 프로젝트가 있습니다. 이 문제를 해결하기위한 모든 도움을 주시면 감사하겠습니다.