Comments (5)
This issue is broader than that, since there are currently some inconsistencies that would be nice to improve:
- The
kinetic
branch is using themaven-publish
plug-in for the ros-java plug-in but themaven
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 themaven
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 themaven
plug-in, and that possibly due to the fact that the oldmaven
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 easierpublish
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.
Does the new maven-publish plug-in work for android yet?
from rosjava_bootstrap.
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.
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.
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)
- Message Headers missing dependency information HOT 12
- Updates to rosjava message generation HOT 2
- Android studio 0.6 upgrades HOT 1
- Bad version checking in the catkin plugin
- After publishing my Android app on Google Play I've got "Supported devices 0" warning HOT 12
- Revise maven repository dependencies HOT 11
- Pull in non-api settings via url instead of plugin HOT 2
- FYI: gradle 2.3 released HOT 3
- No default maven repository set in the plugin HOT 4
- update gradle version from the internet. HOT 12
- hydro message dependencies muddled with indigo
- add to RosAndroid.groovy maven repositories HOT 1
- custom messages with fixed-length arrays are received in rosjava as an empty array HOT 1
- Make buildscript pointer release agnostic
- Build is failing on debian Jessie due to SSL issues HOT 15
- generate java code for actions in same source workspace HOT 8
- install tags are wrong HOT 2
- Could not find method google() for arguments [] on repository container HOT 2
- Outdated buildToolsVersion in ros-android gradle plugin HOT 5
- https://github.com/rosjava/rosjava_mvn_repo/raw/master the page is gone
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
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.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from rosjava_bootstrap.