polygene-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Niclas Hedhman <nic...@hedhman.org>
Subject Re: Build problems...
Date Sat, 18 Feb 2017 01:58:24 GMT
I have been digging in this for a while now, and my findings are...

Since the project.name isn't changed "upfront", but trying to keep the
directory naming, there is a "PublishNaming.publishedNameFor( project.path )"
that tries to set the jar names where needed.
Bizarre enough, the POM generation uses (or so I think) the artifact in the
"archives" configuration and generates correct <artifactId> for the
published POM. But that artifact (in archives) has dependencies pointing to
the projects with their respective names, and unable to resolve the "short
name" to "long name" therein.

There is an experimental feature in Gradle (ArtifactResolutionQuery), which
is currently used to (I think) build the local Maven repository in the SDK,
and that feature might be possible to somehow use to get the correct
artifactId into the Maven POM <dependencies> section.

But that is simply beyond me...

Cheers
Niclas

On Mon, Feb 13, 2017 at 1:11 AM, Paul Merlin <paul@nosphere.org> wrote:

> Le 12 février 2017 10:25:33 GMT-05:00, Niclas Hedhman <niclas@hedhman.org>
> a écrit :
>>
>> No 'publishToMavenLocal' task in 'develop' at the moment. Perhaps you
>> didn't push it, or...?
>>
>>
>>
>> niclas@devdesk:~/dev/polygene/java$ ./gradlew tasks
>> :buildSrc:compileJava UP-TO-DATE
>> :buildSrc:compileGroovy UP-TO-DATE
>> :buildSrc:processResources UP-TO-DATE
>> :buildSrc:classes UP-TO-DATE
>> :buildSrc:jar UP-TO-DATE
>> :buildSrc:assemble UP-TO-DATE
>> :buildSrc:compileTestJava UP-TO-DATE
>> :buildSrc:compileTestGroovy UP-TO-DATE
>> :buildSrc:processTestResources UP-TO-DATE
>> :buildSrc:testClasses UP-TO-DATE
>> :buildSrc:test UP-TO-DATE
>> :buildSrc:check UP-TO-DATE
>> :buildSrc:build UP-TO-DATE
>> The Jetty plugin has been deprecated and is scheduled to be removed in
>> Gradle 4.0. Consider using the Gretty (https://github.com/akhikhl/gretty)
>> plugin instead.
>>        at
>> build_2f82eno9qy3vq1tf48q5bfowx.run(/home/niclas/dev/polygene/java/samples/rental/build.gradle:23)
>>
>> :tasks
>>
>> ------------------------------
>>
>> All tasks runnable from root project
>> ------------------------------
>>
>>
>> Default tasks: classes, test
>>
>> Build tasks
>> -----------
>> assemble - Assembles the outputs of this project.
>> build - Assembles and tests this project.
>> buildDependents - Assembles and tests this project and all projects that
>> depend on it.
>> buildNeeded - Assembles and tests this project and all projects it depends
>> on.
>> classes - Assembles main classes.
>> clean - Deletes the build directory.
>> jar - Assembles a jar archive containing the main classes.
>> perfClasses - Assembles perf classes.
>> testClasses - Assembles test classes.
>> versionClasses - Assembles version classes.
>> vhostTestClasses - Assembles vhost test classes.
>> war - Generates a war archive with all the compiled classes, the web-app
>> content and the libraries.
>>
>> Build Setup tasks
>> -----------------
>> init - Initializes a new Gradle build. [incubating]
>> wrapper - Generates Gradle wrapper files. [incubating]
>>
>> Distribution tasks
>> ------------------
>> stageBinariesMavenRepository - Stages published binaries as a maven
>> repository in the build directory.
>> stageBinaryDistribution - Stages the binary distribution in the build
>> directory.
>> stageDependenciesMavenRepository - Stages dependencies of published
>> binaries as a maven repository in the build directory. (BIG)
>> stageSourceDistribution - Stages the source distribution in the build
>> directory.
>> tarBinaryDistribution - Assembles .tar.gz binary distribution.
>> tarSourceDistribution - Assembles .tar.gz source distribution.
>> zipBinaryDistribution - Assembles .zip binary distribution.
>> zipDependenciesDistribution - Assemble .zip dependencies distribution (BIG)
>> zipSourceDistribution - Assembles .zip source distribution.
>>
>> Distribution verification tasks
>> ------------------------------
>>
>> buildSourceDistribution - Checks the source distribution by running `gradle
>> build` inside.
>> checkDistributions - Run all distribution checks.
>> ratBinaryDistribution - Checks the binary distribution using Apache RAT.
>> ratSourceDistribution - Checks the source distribution using Apache RAT.
>>
>> Docker tasks
>> ------------
>> buildCassandraDockerImage - Build cassandra Docker image
>> buildMemcachedDockerImage - Build memcached Docker image
>> buildMysqlDockerImage - Build mysql Docker image
>> buildPostgresDockerImage - Build postgres Docker image
>> buildRedisDockerImage - Build redis Docker image
>> buildRiakDockerImage - Build riak Docker image
>>
>> Documentation tasks
>> -------------------
>> groovydoc - Generates Groovydoc API documentation for the main source code.
>> javadoc - Generates Javadoc API documentation for the main source code.
>> javadocs - Builds the whole SDK public Javadoc
>> makeAsciidocBuildInfo - Generates asciidoc artifact snippet
>> manuals - Generates all documentation
>> website - Generates documentation website
>>
>> Help tasks
>> ----------
>> buildEnvironment - Displays all buildscript dependencies declared in root
>> project 'polygene-java'.
>> components - Displays the components produced by root project
>> 'polygene-java'. [incubating]
>> dependencies - Displays all dependencies declared in root project
>> 'polygene-java'.
>> dependencyInsight - Displays the insight into a specific dependency in root
>> project 'polygene-java'.
>> dependentComponents - Displays the dependent components of components in
>> root project 'polygene-java'. [incubating]
>> downloadDependencies - Download all dependencies
>> help - Displays a help message.
>> model - Displays the configuration model of root project 'polygene-java'.
>> [incubating]
>> projects - Displays the sub-projects of root project 'polygene-java'.
>> properties - Displays the properties of root project 'polygene-java'.
>> tasks - Displays the tasks runnable from root project 'polygene-java' (some
>> of the displayed tasks may belong to subprojects).
>>
>> Performance tasks
>> -----------------
>> performanceTest - Runs performance tests.
>>
>> Release tasks
>> -------------
>> publishAsfDistributions - Publishes distributions to ASF SVN.
>> publishAsfDocumentation - Publishes documentation to ASF HTTP.
>> publishAsfMavenArtifacts - Publishes maven artifacts to ASF Nexus.
>> releaseAsf - Rolls out an Apache Software Foundation release.
>> releaseSpecApprovedProjects - Apply release specification to projects in
>> the build
>> reportReleaseSpec - Report module(s) that do or don't fit the release
>> criteria.
>>
>> Release verification tasks
>> --------------------------
>> checkReleaseSpec - Ensure that no releasable module depend on module(s)
>> that don't fit the release criteria.
>>
>> Samples tasks
>> -------------
>> runCircuitBreakerSample - Runs circuitbreaker sample.
>> runEnvisageSample - Runs envisage sample.
>> runEnvisageSchoolSample - Runs envisage School sample.
>> runForumSample - Runs forum sample.
>> runJmxSample - Runs jmx sample.
>> runRestletSample - Runs restlet sample.
>> runSqlSupportSample - Runs sql-support sample.
>> runSwingSample - Runs swing sample.
>>
>> Upload tasks
>> ------------
>> uploadArchives - Uploads all artifacts belonging to configuration
>> ':core:api:archives'
>> uploadStageArchives - Uploads all artifacts belonging to configuration
>> ':core:api:stageArchives'
>>
>> Verification tasks
>> ------------------
>> check - Runs all checks.
>> coverage - Generates global coverage report
>> jacocoTestReport - Generates test coverage report.
>> test - Runs the unit tests.
>>
>> Web application tasks
>> ---------------------
>> jettyRun - Uses your files as and where they are and deploys them to Jetty.
>> jettyRunWar - Assembles the webapp into a war and deploys it to Jetty.
>> jettyStop - Stops Jetty.
>>
>> Rules
>> -----
>> Pattern: clean<TaskName>: Cleans the output files of a task.
>>
>> To see all tasks and more detail, run gradlew tasks --all
>>
>> To see more detail about a task, run gradlew help --task <task>
>>
>> BUILD SUCCESSFUL
>>
>>
>> On Sun, Feb 12, 2017 at 8:29 PM, Paul Merlin <paul@nosphere.org> wrote:
>>
>>  Le 12 février 2017 04:31:44 GMT-05:00, Niclas Hedhman <niclas@hedhman.org>
>>>  a écrit :
>>>
>>>  I build a distirbution and found a Maven repository inside
>>>>  distributions/build/stage
>>>>
>>>>  And far more disturbing than not getting .m2/ populated is that the
>>>>  produced POMs are invalid. The naming of jar files is messed up now,
>>>>  missing the group in the artifactId.
>>>>
>>>>    <dependencies>
>>>>     <dependency>
>>>>       <groupId>org.apache.polygene.core</groupId>
>>>>       <artifactId>bootstrap</artifactId>
>>>>       <version>0</version>
>>>>       <scope>compile</scope>
>>>>     </dependency>
>>>>     <dependency>
>>>>       <groupId>org.apache.polygene.extensions</groupId>
>>>>       <artifactId>valueserialization-jackson</artifactId>
>>>>       <version>0</version>
>>>>       <scope>compile</scope>
>>>>     </dependency>
>>>>     <dependency>
>>>>       <groupId>org.apache.polygene.extensions</groupId>
>>>>       <artifactId>indexing-rdf</artifactId>
>>>>       <version>0</version>
>>>>       <scope>compile</scope>
>>>>     </dependency>
>>>>
>>>>
>>>>  On Sun, Feb 12, 2017 at 5:24 PM, Niclas Hedhman <niclas@hedhman.org>
wrote:
>>>>
>>>>   Paul,
>>>>
>>>>>   'install' doesn't work anymore... Or at least, the ~/.m2/repository
is not
>>>>>   populated.
>>>>>
>>>>>   And I can't figure out how the all-plugin way of build system is actually
>>>>>   working.
>>>>>
>>>>>
>>>>>   What do I need to do for "local build" and be able to use that in another
>>>>>   local project?
>>>>>
>>>>>
>>>>>   Cheers
>>>>>   --
>>>>>   Niclas Hedhman, Software Developer
>>>>>   http://polygene.apache.org <http://zest.apache.org> - New Energy
for Java
>>>>>
>>>>
>>>
>>>
>>>
>>>  Hi Niclas,
>>>
>>>  I'm currently very far away from a keyboard and will be until the 20th.
>>>
>>>  The artifactIds should be fixed, good catch.
>>>
>>>  As for publishing to ~/.m2, the publishToMavenLocal task should do.
>>>
>>>  HTH
>>
>>
>>
>>
>>
> Arg...
> Looks like I overlooked that use case when working on the build.
> I'll fix that when I'm back.
>
> In the meantime you can use stageBinariesMavenRepository and add the
> directory as a repository to your consuming project.
>
> If the consuming project is built using gradle you could have a look at
> composite builds to skip that 'local artifacts' mess. There would probably
> be some mapping to do for substitution to work. I plan to provide a sample
> when I'm back, just mentioning in case you want to have a look.
>
> HTH
>
> Cheers
> --
> Envoyé de mon appareil Android avec Courriel K-9 Mail. Veuillez excuser ma
> brièveté.
>



-- 
Niclas Hedhman, Software Developer
http://polygene.apache.org <http://zest.apache.org> - New Energy for Java

Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message