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 <[email protected] > <mailto:[email protected]>> wrote: > > Le 12 février 2017 10:25:33 GMT-05:00, Niclas Hedhman > <[email protected] <mailto:[email protected]>> 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 > <[email protected] <mailto:[email protected]>> wrote: > > Le 12 février 2017 04:31:44 GMT-05:00, Niclas Hedhman > <[email protected] <mailto:[email protected]>> 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 <[email protected] > <mailto:[email protected]>> 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
