You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@mahout.apache.org by Grant Ingersoll <gs...@apache.org> on 2009/11/11 16:37:55 UTC

Oh joy

Given:
<execution>
                 <id>create-hadoop-core-artifact</id>
                 <phase>deploy</phase>
                 <goals>
                   <goal>sign-and-deploy-file</goal>
                 </goals>
                 <configuration>
                   <file>core/lib/hadoop-core-0.20.1.jar</file>
                   <groupId>org.apache.mahout.hadoop</groupId>
                   <artifactId>hadoop-core</artifactId>
                   <packaging>jar</packaging>
                   <version>0.20.1</version>
                   <generatePom>true</generatePom>
                 </configuration>
               </execution>

In the top level POM, Maven thinks the artifact should be in ./maven/ 
core.  WTF?  Why would it ever think it is in the ./maven working  
directory?  I can fix this, but my patience with Maven is wearing thin.

[INFO] [INFO] [gpg:sign-and-deploy-file {execution: create-hadoop-core- 
artifact}]
[INFO] [INFO]  
------------------------------------------------------------------------
[INFO] [ERROR] BUILD ERROR
[INFO] [INFO]  
------------------------------------------------------------------------
[INFO] [INFO] /bld/mah/target/checkout/maven/core/lib/hadoop- 
core-0.20.1.jar not found.
[INFO] [INFO]  
------------------------------------------------------------------------
[INFO] [INFO] For more information, run Maven with the -e switch
[INFO] [INFO]  
------------------------------------------------------------------------
[INFO] [INFO] Total time: 13 minutes 11 seconds
[INFO] [INFO] Finished at: Wed Nov 11 10:16:23 EST 2009
[INFO] [INFO] Final Memory: 62M/205M
[INFO] [INFO]  
------------------------------------------------------------------------
[INFO]  
------------------------------------------------------------------------
[ERROR] BUILD ERROR



Re: Oh joy

Posted by Drew Farris <dr...@gmail.com>.
Jukka has a point that the dependencies don't need to be signed and
deployed for each mahout release, but I've done it enough to know that
running the dependency deploy by hand from the command-line can be
painful. All of the sign-and-deploy stuff (for dependencies) could be
moved to to another pom or module and remain unbound to the lifecycle
Theoretically, the deps don't even need to be included underneath the
main mahout module as long as any committer who changes them makes
sure the updated versions are deployed properly.

Maybe that makes things easier to fix?

Drew

On Wed, Nov 11, 2009 at 2:37 PM, Jukka Zitting <ju...@gmail.com> wrote:
> Hi,
>
> On Wed, Nov 11, 2009 at 8:50 PM, Grant Ingersoll <gs...@apache.org> wrote:
>> Not following.   AFAICT, sign-and-deploy (we just used deploy-file before,
>> but that doesn't sign) is specifically for this use case, AIUI .
>
> Like deploy-file, the sign-and-deploy goal is designed to be used
> directly from the command line. Binding it to a normal build lifecycle
> can end up overriding some of the default settings, like adding the
> "maven/core" base path that you were seeing.
>
> Instead of running the sign-and-deploy goal within the Mahout release
> build should not really be necessary, as you could just run it from
> the command line to deploy the artifact. Note that this artifact only
> needs to be uploaded once, not per each Mahout release.
>
> BR,
>
> Jukka Zitting
>

Re: Oh joy

Posted by Grant Ingersoll <gs...@apache.org>.
On Nov 11, 2009, at 2:37 PM, Jukka Zitting wrote:

> Hi,
>
> On Wed, Nov 11, 2009 at 8:50 PM, Grant Ingersoll  
> <gs...@apache.org> wrote:
>> Not following.   AFAICT, sign-and-deploy (we just used deploy-file  
>> before,
>> but that doesn't sign) is specifically for this use case, AIUI .
>
> Like deploy-file, the sign-and-deploy goal is designed to be used
> directly from the command line. Binding it to a normal build lifecycle
> can end up overriding some of the default settings, like adding the
> "maven/core" base path that you were seeing.
>

Yeah, but the deploy-file method works fine here.  So, I would expect  
sign-and-deploy to work too, but alas it doesn't since it does the  
wrong setup.  See http://old.nabble.com/SignAndDeploy-issue-tt26305689.html#a26305689

> Instead of running the sign-and-deploy goal within the Mahout release
> build should not really be necessary, as you could just run it from
> the command line to deploy the artifact. Note that this artifact only
> needs to be uploaded once, not per each Mahout release.

Right, but it's almost guaranteed that these artifacts will change  
with each release.  Once Hadoop does their next release it will all be  
moot, since then all artifacts will be available (watchmaker is now  
published).

For now, I'm going to revert to just deploy and then upload the  
signatures myself.

-Grant


Re: Oh joy

Posted by Jukka Zitting <ju...@gmail.com>.
Hi,

On Wed, Nov 11, 2009 at 8:50 PM, Grant Ingersoll <gs...@apache.org> wrote:
> Not following.   AFAICT, sign-and-deploy (we just used deploy-file before,
> but that doesn't sign) is specifically for this use case, AIUI .

Like deploy-file, the sign-and-deploy goal is designed to be used
directly from the command line. Binding it to a normal build lifecycle
can end up overriding some of the default settings, like adding the
"maven/core" base path that you were seeing.

Instead of running the sign-and-deploy goal within the Mahout release
build should not really be necessary, as you could just run it from
the command line to deploy the artifact. Note that this artifact only
needs to be uploaded once, not per each Mahout release.

BR,

Jukka Zitting

Re: Oh joy

Posted by Grant Ingersoll <gs...@apache.org>.
On Nov 11, 2009, at 1:45 PM, Jukka Zitting wrote:

> Hi,
>
>
> On Wed, Nov 11, 2009 at 5:37 PM, Grant Ingersoll  
> <gs...@apache.org> wrote:
>> Given:
>> <execution>
>>                <id>create-hadoop-core-artifact</id>
>>                <phase>deploy</phase>
>>                <goals>
>>                  <goal>sign-and-deploy-file</goal>
>>                </goals>
>>                <configuration>
>>                  <file>core/lib/hadoop-core-0.20.1.jar</file>
>>                  <groupId>org.apache.mahout.hadoop</groupId>
>>                  <artifactId>hadoop-core</artifactId>
>>                  <packaging>jar</packaging>
>>                  <version>0.20.1</version>
>>                  <generatePom>true</generatePom>
>>                </configuration>
>>              </execution>
>
> You're trying to force Maven to do something it was never designed  
> to do.

Not following.   AFAICT, sign-and-deploy (we just used deploy-file  
before, but that doesn't sign) is specifically for this use case, AIUI .

If I don't solve it today, I will revert to the old way and upload the  
signatures by hand for these artifacts.

>
> The standard and by far the easiest way to get this dependency
> included in the Mahout build is to ask the Hadoop project do deploy it
> under the org.apache.hadoop groupId.

They are working on it, but don't have it for our versions.  We also  
have other non-Hadoop deps that aren't published, so they need to be  
deployed and signed as well (Commons CLI2).

> I can help prepare a package that
> they'd only need to unpack in
> .../m2-ibiblio-rsync-repository/org/apache/hadoop/ on
> people.apache.org.



Re: Oh joy

Posted by Jukka Zitting <ju...@gmail.com>.
Hi,


On Wed, Nov 11, 2009 at 5:37 PM, Grant Ingersoll <gs...@apache.org> wrote:
> Given:
> <execution>
>                <id>create-hadoop-core-artifact</id>
>                <phase>deploy</phase>
>                <goals>
>                  <goal>sign-and-deploy-file</goal>
>                </goals>
>                <configuration>
>                  <file>core/lib/hadoop-core-0.20.1.jar</file>
>                  <groupId>org.apache.mahout.hadoop</groupId>
>                  <artifactId>hadoop-core</artifactId>
>                  <packaging>jar</packaging>
>                  <version>0.20.1</version>
>                  <generatePom>true</generatePom>
>                </configuration>
>              </execution>

You're trying to force Maven to do something it was never designed to do.

The standard and by far the easiest way to get this dependency
included in the Mahout build is to ask the Hadoop project do deploy it
under the org.apache.hadoop groupId. I can help prepare a package that
they'd only need to unpack in
.../m2-ibiblio-rsync-repository/org/apache/hadoop/ on
people.apache.org.

BR,

Jukka Zitting