Coder Social home page Coder Social logo

Comments (5)

adamantivm avatar adamantivm commented on July 17, 2024

This issue is broader than that, since there are currently some inconsistencies that would be nice to improve:

  • The kinetic branch is using the maven-publish plug-in for the ros-java plug-in but the maven for the android plug-in. This causes projects to behave differently and use different deploy targets.
  • In addition, the master branch had been reverted back to use the maven plug-in for rosjava as well. @stonier mentions this has undesired implications but we are unsure what those may be. One possibility is problems creating debians with the maven plug-in, and that possibly due to the fact that the old maven plug-in always tries to deploy to maven local, which is not allowed on the build farm
  • The current target used for rosjava library artifacts is the un-intuitive publishMavenJavaPublicationToMavenRepository. Perhaps the easier publish could be used instead.

When this is tackled, also make sure to go through the templates, comments, existing code and documentation to make sure everything is updated to the resulting format.

from rosjava_bootstrap.

stonier avatar stonier commented on July 17, 2024

Does the new maven-publish plug-in work for android yet?

from rosjava_bootstrap.

adamantivm avatar adamantivm commented on July 17, 2024

online reports are mixed. I would guess that by now it must be fully supported.
My plan is, once I am done with a pass with everything working and all other important parts done to:

  • See if we can effectively switch to the publish
  • See if we can migrate the android plug-in to use this as well

from rosjava_bootstrap.

adamantivm avatar adamantivm commented on July 17, 2024

Some updates. TL;DR: we still can't use maven-publish for the Android projects.

I asked the Android Gradle experts and they confirmed it is not yet working and that the maven-publish plug-in continues to be incubating despite a few years now having gone by.
Nonetheless, they also mentioned that there are upcoming updates both from the Gradle maven developers and from the Android Gradle developers which may mean that towards the middle of this year we may see updates on this front.

I also found a few hacks like this that try to put together the proper dependencies for an Android Library project manually, but my testing shows that this solution won't quite work for us, because it produces dependency versions in the pom.xml that don't mirror the range specifications of the project but instead use the versions resolved at build time, which is not exactly what we want.

On the positive side, I am almost sure that the publish target will work fine for us so I am in the process of testing using that on the build farm. If that works, I'll switch all projects to use that instead of the longer and difficult to remember Gradle target.

from rosjava_bootstrap.

stonier avatar stonier commented on July 17, 2024

Aye, I've had problems with hacks before that don't resolve transitive dependencies in the pom.xml (mailing list archived message is here).

Just repeating what I had in the email so we have a reference here. The only thing that should be a concern is publishing to maven local would cause a problem:

  • Publish source generated artifacts to local
  • New shell, source /opt/ros/kinetic intending to use the binary maven repository
  • The maven local artifacts from the previous source workspace intrude...

From what I read in the maven-publish documentation, publish should be ok so long as the local repository isn't in the publishing.repositories container.

from rosjava_bootstrap.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.