polygene-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Paul Merlin <paulmer...@apache.org>
Subject Re: Build problems...
Date Sat, 25 Feb 2017 11:37:38 GMT
Niclas,

I just pushed a fix to the build system for Maven artifactId of
published bits.
`./gradlew install` should now do what you expect.
Could you confirm it works for you?

By the way, I upgraded Gradle to the latest stable release 3.4, enabled
incremental Java compilation and applied the new java-library plugin
that allows to clearly separate API and implementation and thus allows
for more compile avoidance.

See https://docs.gradle.org/current/userguide/java_library_plugin.html
and
https://docs.gradle.org/current/release-notes.html#faster-java-incremental-compilation

I suppose that you'll like the new dependencies declarations that now
distinguish compilation, API & implementation dependencies on each
project ;)

Cheers

/Paul


Niclas Hedhman a écrit :
> I have been digging in this for a while now, and my findings are...
>
> Since the project.name <http://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
> <mailto:paul@nosphere.org>> wrote:
>
>     Le 12 février 2017 10:25:33 GMT-05:00, Niclas Hedhman
>     <niclas@hedhman.org <mailto: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 <https://github.com/akhikhl/gretty>)
>         plugin instead.
>                at
>         build_2f82eno9qy3vq1tf48q5bfowx.run <http://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 <mailto:paul@nosphere.org>> wrote:
>
>             Le 12 février 2017 04:31:44 GMT-05:00, Niclas Hedhman
>             <niclas@hedhman.org <mailto: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
>                 <mailto: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