dev@glassfish.java.net

Re: About a problem of HK2 building

From: Tang Yong <tangyong_at_cn.fujitsu.com>
Date: Wed, 10 Oct 2012 23:11:53 +0900

Hi Romain

  Thanks your quick reply.

> release.sh is not made for building but for releasing.
Right, I know th point because it used maven-release-plugin to release
hk2 new version.

> I don't know where release:prepare failed for you but if you don't have
> software developer role on hk2 project you won't be able to run this
script.

Yeah, you are also right and because maven-release-plugin will use scm
to check file's modification.

> The steps to build hk2 1.x branch are the following:
>> mvn -Prelease-phase1 install
>> mvn install

I can understand what you said, however, on user's machine, if he/she
wants to build a customized hk2 1.x *snapshot*, then, only executing
above commands is not enough because building will failed. About the
point, I want to say that I have tried many times and my env setting,etc
is also no problem.

So, could you understand my use case? Or, I want to firstly ask a question.

While I want to build a customized version 1.1.15-ty-00005-SNAPSHOT,
how to set 1.1.15-ty-00005-SNAPSHOT version?

If first setting 1.1.15-ty-00005-SNAPSHOT on hk2-parent pom, while
executing mvn -Prelease-phase1 install, building must be failed.

So, release.sh used maven-release-plugin to update a new version.

Thanks!
--Tang

Romain Grecourt wrote:
> Hi Tang,
>
> release.sh is not made for building but for releasing.
> I don't know where release:prepare failed for you but if you don't have
> software developer role on hk2 project you won't be able to run this script.
>
> The steps to build hk2 1.x branch are the following:
>> mvn -Prelease-phase1 install
>> mvn install
>
> Thanks,
> Romain
>
> On 10/10/2012 03:55 PM, Tang Yong wrote:
>> According my investigation, while hk2 team release a new hk2 version,
>> building will run a shell script hk2's release.sh on a inner hudson
>> build machine. I also tried the script on my machine, however, on
>> executing "mvn -e -B -DuseEditMode=true release:prepare", building failed.
>>
>> So, on user's machine, I want to ask how to build a new hk2 1.x snapshot?
>>
>> Thanks!
>> --Tang
>>
>> Tang Yong wrote:
>>> Hi Romain, HK2 building)Team,
>>>
>>> Normally, a user needs not to build a customized hk2
>>> version(eg.1.1.15-gf-00007-SNAPSHOT), however, I have such a case.
>>> According to hk2 1.x 's building script(eg. firstly "mvn -P
>>> release-phase1 install"), auto-building failed, so this is my problem.
>>>
>>> Although I have interrupted team to see back hk2 1.x, I really wish
>>> team can give me more advice.
>>>
>>> Thanks again!
>>> --Tang
>>>
>>> Tang Yong wrote:
>>>> Hi Romain,
>>>>
>>>>> Since hk2 1.1.15 still references maven.glassfish.org, this workaround
>>>>> is necessary if behind some proxy (depending on the proxy, maven will
>>>>> save html files as artifacts and it will corrupt your local repository).
>>>> I can understand the point because I have checked my env and set the proxy.
>>>>
>>>>>>>> [Problem]
>>>>>>>> After I checked out hk2 1.1.15[1], I plan to release a new hk2
>>>>>>>> version(1.1.15-gf-00007-SNAPSHOT) based 1.1.15. Then, I made the
>>>>>>>> following modification.
>>>>>>>>
>>>>>>>> 1) modify <version> in hk2-parent pom into 1.1.15-gf-00007-SNAPSHOT
>>>>>>>> 2) modify <parent><version> in hk2-related modules into
>>>>>>>> 1.1.15-gf-00007-SNAPSHOT
>>>>>>>>
>>>>>>>> Then, I start to execute the following command:
>>>>>>>>
>>>>>>>> mvn -P release-phase1 install
>>>> The above is my real problem, and kernel of the problem is that I want
>>>> to release a new hk2 version(1.1.15-gf-00007-SNAPSHOT) based 1.1.15. I
>>>> can build hk2 1.1.15 successfully, however, after I made the above
>>>> modifications, building failed.
>>>>
>>>> Thanks!
>>>> --Tang
>>>>
>>>> Romain Grecourt wrote:
>>>>> On 10/09/2012 11:53 AM, Tang Yong wrote:
>>>>>> Hi Romain,
>>>>>>
>>>>>> Thanks your quick reply!
>>>>>>
>>>>>> > Which mvn version are you using ?
>>>>>> maven 3.0.4
>>>>>> jdk 1.6.0_34
>>>>>>
>>>>>> > Are you using the following workaround ?
>>>>>>> https://wikis.oracle.com/display/GlassFish/FullBuildInstructions#FullBuildInstructions-Settings.xml
>>>>>> Romain, this is to gf trunk , what I built is HK2. I can build gf's
>>>>>> building successfully.
>>>>> Since hk2 1.1.15 still references maven.glassfish.org, this workaround
>>>>> is necessary if behind some proxy (depending on the proxy, maven will
>>>>> save html files as artifacts and it will corrupt your local repository).
>>>>>
>>>>> Thanks,
>>>>> Romain
>>>>>> Thanks!
>>>>>> --Tang
>>>>>>
>>>>>> Romain Grecourt wrote:
>>>>>>> Hi Tang,
>>>>>>>
>>>>>>> Which mvn version are you using ?
>>>>>>> Are you using the following workaround ?
>>>>>>> https://wikis.oracle.com/display/GlassFish/FullBuildInstructions#FullBuildInstructions-Settings.xml
>>>>>>>
>>>>>>> Please, see my comments inline.
>>>>>>>
>>>>>>> On 10/09/2012 10:22 AM, Tang Yong wrote:
>>>>>>>> Hi HK2)Team
>>>>>>>> CC: Sahoo
>>>>>>>>
>>>>>>>> Today, I met a hk2 1.1.15(hk2 earlier version) building problem and
>>>>>>>> want to ask a right solution.
>>>>>>>>
>>>>>>>> [Problem]
>>>>>>>> After I checked out hk2 1.1.15[1], I plan to release a new hk2
>>>>>>>> version(1.1.15-gf-00007-SNAPSHOT) based 1.1.15. Then, I made the
>>>>>>>> following modification.
>>>>>>>>
>>>>>>>> 1) modify <version> in hk2-parent pom into 1.1.15-gf-00007-SNAPSHOT
>>>>>>>> 2) modify <parent><version> in hk2-related modules into
>>>>>>>> 1.1.15-gf-00007-SNAPSHOT
>>>>>>>>
>>>>>>>> Then, I start to execute the following command:
>>>>>>>>
>>>>>>>> mvn -P release-phase1 install
>>>>>>>>
>>>>>>>> However, the following execption happened on cmd shell,
>>>>>>>> ...
>>>>>>>> [INFO] --- maven-enforcer-plugin:1.0:enforce (enforce-maven) @ external ---
>>>>>>>> [INFO] Forking Inversion of Control / Autodependency mechanism
>>>>>>>> 1.1.15-gf-00007-SNAPSHOT
>>>>>>>> ...
>>>>>>>> [INFO] Reactor Summary:
>>>>>>>> [INFO]
>>>>>>>> [INFO] Modules Subsystem ................................. SUCCESS [1.234s]
>>>>>>>> [INFO] Class Model for Hk2 ............................... FAILURE [34.422s]
>>>>>>>> ...
>>>>>>>> [ERROR] Failed to execute goal on project auto-depends: Could not
>>>>>>>> resolve dependencies for project
>>>>>>>> org.glassfish.hk2:auto-depends:jar:1.1.15-gf-00007-SNAPSHOT: Could not
>>>>>>>> find artifact
>>>>>>>> org.glassfish.hk2.external:asm-all-repackaged:jar:1.1.15-gf-00007-SNAPSHOT
>>>>>>>> ...
>>>>>>>>
>>>>>>>> [My Trying]
>>>>>>>> After seeing the above exception, I checked my maven local repo and have
>>>>>>>> not found class-model-1.1.15-gf-00007-SNAPSHOT.jar on there although
>>>>>>>> seeing from class-model's pom, class-model does not depend on
>>>>>>>> auto-depends and asm-all-repackaged.
>>>>>>> 1)
>>>>>>> It says "Failed to execute goal on project auto-depends" and the reactor
>>>>>>> summary says that there is a failure in class-model. Class-model does
>>>>>>> not depend on auto-depends!
>>>>>>>
>>>>>>> 2)
>>>>>>> The failure you reported is actually related to auto-depends which
>>>>>>> depends on asm-all-repackaged:
>>>>>>> /
>>>>>>> [INFO] [dependency:tree {execution: default-cli}]
>>>>>>> [INFO] org.glassfish.hk2:auto-depends:jar:1.1.15
>>>>>>> [INFO] +- org.jvnet:tiger-types:jar:1.2:compile
>>>>>>> [INFO] +- org.glassfish.hk2:class-model:jar:1.1.15:compile
>>>>>>> [INFO] | \- (junit:junit:jar:4.3.1:compile - omitted for duplicate)
>>>>>>> [INFO] +- junit:junit:jar:4.3.1:provided (scope not updated to compile)
>>>>>>> [INFO] \- org.glassfish.hk2.external:asm-all-repackaged:jar:1.1.15:compile/
>>>>>>>
>>>>>>> 3)
>>>>>>> Why do you have version=1.1.15-gf-000007-SNAPSHOT if you are trying to
>>>>>>> build a tag ?
>>>>>>> I'm almost sure all of this is related to the version updates you did
>>>>>>> locally.
>>>>>>>
>>>>>>> If you want to work on the 1.1.x branch, here is the SVN URL:
>>>>>>>
>>>>>>> > https://svn.java.net/svn/hk2~svn/branches/hk2-parent-1.1.x
>>>>>>>> Then, I tried to adjust building order in hk2-parent pom and put
>>>>>>>> <module>external</module> before <module>class-model</module>, but the
>>>>>>>> similar problem still happened.
>>>>>>> The module order in the pom.xml does not really matter, maven figures
>>>>>>> the reactor and the build order on its own.
>>>>>>>> Then, I tried to build the external module and other related modules
>>>>>>>> manually once simlar problems happened. As a result, anything is OK.
>>>>>>>> Then, I start to execute "mvn -P release-phase1 install" and this time,
>>>>>>>> executing is OK.
>>>>>>>>
>>>>>>>> [My Analyse]
>>>>>>>> 1) Before HK2 releases a hk2 version and source, whether team has
>>>>>>>> uploaded built jars of the version into remote maven repository in order
>>>>>>>> to make user can download these jars while executing "mvn -P
>>>>>>>> release-phase1 install" or not?
>>>>>>> No, the hk2 1.x build is split in two phases because it contains maven
>>>>>>> plugins that are also used during the build.
>>>>>>> -Prelease-phase1 builds the 1st phase which contains the maven plugins.
>>>>>>>> 2) Maybe my modification way is not right at all.
>>>>>>>>
>>>>>>>> [Request]
>>>>>>>> Could team please tell me a right doing way?
>>>>>>> I was not able to reproduce your issue.
>>>>>>> I've able to build the tag using mvn 2.2.1 and 3.0.3 (removing
>>>>>>> org/glassfish/hk2 from my local repo each time).
>>>>>>>
>>>>>>> Thanks,
>>>>>>> Romain
>>>>>>>> [1]: https://svn.java.net/svn/hk2~svn/tags/hk2-parent-1.1.15
>>>>>>>>
>>>>>>>> Thanks
>>>>>>>> --Tang
>>>>>>>>
>>>
>
>