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 Sun, 26 Feb 2017 14:08:53 GMT
That said;

Somewhere, artifact/version/filename parsing is happening. If I provide a
"-Dversion=3.0.0-alpha1" then the file names are screwed up, and becomes
".jar", "-sources.jar" and so on, without a name.

The following from a quick test;

3.0.0 --> correct file names
3.0.0.alpha1 --> corrupt
3.0.0-alpha1 --> corrupt
3.0.alpha1 --> correct

I don't know if this is serious enough to bother about, but I thought I
should give the feedback.


Niclas

On Sun, Feb 26, 2017 at 9:26 PM, Niclas Hedhman <niclas@hedhman.org> wrote:

>
> * POM has correct artifactId
>
> * $HOME/.m2/repository/ is populated
>
> * The test/ are still causing issue in IDEA, most likely related to
> perfRuntimeOnly configuration that can't be resolved to something useful.
>
>
> Cheers
>
> On Sat, Feb 25, 2017 at 7:37 PM, Paul Merlin <paulmerlin@apache.org>
> wrote:
>
>> 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
>>
>
>
>
> --
> Niclas Hedhman, Software Developer
> http://polygene.apache.org <http://zest.apache.org> - New Energy for Java
>



-- 
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