This is what I have so far:
configurations {
testing
}
task testingJar(type: Jar, dependsOn: compileTestJava) {
from sourceSets.test.classes
includes += "org/hibernate/testing/**"
baseName = 'hibernate-testing'
}
task testingSourcesJar(type: Jar, dependsOn: compileTestJava) {
from sourceSets.test.allSource
includes += "org/hibernate/testing/**"
baseName = 'hibernate-testing'
classifier = 'sources'
}
artifacts {
testing testingJar, testingSourcesJar
}
// ugh, lots of duplication with uploadArchives
uploadTesting {
repositories.mavenDeployer {
name = 'jbossDeployer'
configuration = configurations.deployerJars
pom.project basePomConfig
pom.artifactId = 'hibernate-testing'
repository(id: "jboss-releases-repository", url:
"https://repository.jboss.org/nexus/service/local/staging/deploy/maven2/")
snapshotRepository(id: "jboss-snapshots-repository", url:
"https://repository.jboss.org/nexus/content/repositories/snapshots")
}
}
uploadArchives.dependsOn uploadTesting
task installTesting(type:Upload, dependsOn: [testingJar,testingSourcesJar]) {
configration = configurations.testing
artifacts = configurations.testing
repositories.mavenInstaller {
name = RepositoryHandler.DEFAULT_MAVEN_INSTALLER_NAME
pom.project basePomConfig
pom.artifactId = 'hibernate-testing'
}
}
install.dependsOn installTesting
uploadTesting.dependsOn installTesting
Aside from the boatloads of duplication this *almost* works. "uploadArchives"
and "uploadTesting" work as expected. "install" works as well. However,
Gradle complains about the definition of "installTesting" (which I took
directly from MavenPlugin code). The error says that "No value has been
specified for property 'artifacts'" on task "installTesting". Yet if I try to
specify one (as above), it complains. My understanding was that 'artifacts'
was determined based on 'configration'?
On Wednesday, February 09, 2011, at 10:23 am, Steve Ebersole wrote:
> I've seen a few posts about a single project producing multiple artifacts
> and even regarding uloading those artifacts to a repository. And I have
> read
> http://gradle.org/0.9.2/docs/userguide/userguide_single.html#sub:multiple_
> artifacts_per_project and related sections.
>
> But I have not found information about handling these multiple artifacts:
> a) with customized poms
> b) through the install task of the Maven plugin
>
> Essentially I have 6 artifacts produced by this one project, the two "main"
> artifacts plus source and javadocs jars for each:
>
> task testingJar(type: Jar, dependsOn: compileTestJava) {
> from sourceSets.test.classes
> includes += "org/hibernate/testing/*"
> baseName = 'hibernate-testing'
> }
>
> As I mentioned I use a customized pom already (from the root project):
> def pomConfig = {
> url 'http://hibernate.org'
> ...
> }
>
> configure(install.repositories.mavenInstaller) {
> pom.project pomConfig
> }
>
> uploadArchives {
> repositories.mavenDeployer {
> name = 'jbossDeployer'
> configuration = configurations.deployerJars
> pom.project pomConfig
> repository(url: ...)
> snapshotRepository(url: ...)
> }
> }
>
> From this point I am really just lost. The new artifact needs an
> overridden artifactId in the pom (it cannot use the project name). In
> terms of uploading and installing, I have seen both the filter approach
> and split configuration naming. But it seems like each require an awful
> lot of duplication in setting up.
>
> Can anyone help show me the light?
>
>
> P.S. Personally, it seems to me that these details should be handled much
> more transparently by the maven plugin. For example, in my opinion if an
> artifact is uploaded to a repository by the maven deployer it ought to
> automatcally be handled by the install task :
> http://jira.codehaus.org/browse/GRADLE-1383
>
>
> ---
> Steve Ebersole <[email protected]>
> http://hibernate.org
---
Steve Ebersole <[email protected]>
http://hibernate.org
---------------------------------------------------------------------
To unsubscribe from this list, please visit:
http://xircles.codehaus.org/manage_email