--
You received this message because you are subscribed to the Google Groups "adt-dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email to adt-dev+u...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.
--
You received this message because you are subscribed to a topic in the Google Groups "adt-dev" group.
To unsubscribe from this topic, visit https://groups.google.com/d/topic/adt-dev/2hPuSUYttbg/unsubscribe.
To unsubscribe from this group and all its topics, send an email to adt-dev+u...@googlegroups.com.
1) Maven central is the first point of call when resolving dependencies. So you will get the official artifacts ahead of the HE artifacts.
2) Publishing in Maven central doesn't require manually downloading and deployment of each version of the Android artifacts for each developer. They become instantly available as soon as they are published by the Android team. So you remove attack via update latency.
3) Publishing the Android artifacts in central marks ownership of the namespace. It is less likely for someone to attempt to usurp that namespace elsewhere as users can see that the namespace is owned and being used. Ie its territory communication.
If that is true, Why I see groupid is org.holoeverywhere in the maven central?
On Thu, Aug 7, 2014 at 2:20 PM, William Ferguson <william....@xandar.com.au> wrote:1) Maven central is the first point of call when resolving dependencies. So you will get the official artifacts ahead of the HE artifacts.This is not true. You can configure this behavior, but it's not Gradle's default.
Moreover, HE isn't publishing these to Maven central because they do not have the rights to this groupId.
2) Publishing in Maven central doesn't require manually downloading and deployment of each version of the Android artifacts for each developer. They become instantly available as soon as they are published by the Android team. So you remove attack via update latency.
This makes no sense to me
3) Publishing the Android artifacts in central marks ownership of the namespace. It is less likely for someone to attempt to usurp that namespace elsewhere as users can see that the namespace is owned and being used. Ie its territory communication.
Both com.google.* and com.android.* are already widely used groupIds by Google for thousands of artifacts in central so this doesn't change anything.
What you are seeing is an old, legacy Maven project doing ugly hacks to try and make things work.
It affects neither Gradle nor Ant builds which are the only supported mechanisms of building Android apps.
It affects neither Gradle nor Ant builds which are the only supported mechanisms of building Android apps.This is not true. Any Gradle build or Ant build using dep management is at risk of this even if they haven't used HoloEverywhere directly themselves.
Correct, but I never claimed they were. My point is that because their artifacts are published to a publicly accessible web address their artifacts are more accessible than those being provided by the Android team.
A) Before you can consume any of the artefacts you need to start SDK manager, choose the appropriate versions of the required artifacts and then download them.
B) You then need to take those artifacts and deploy them to your local (or shared repo).
Most developers don't use the SDK Manager to download the latest artifacts on a daily basis, they do it at irregular intervals. This means that there is a latency between when the artifacts become available and when the developer first has access to the official artifacts.
That gap provides an opportunity for the developers local/shared repo to become polluted with non-official artifacts (potentially without the developer becoming aware of it).
As an aside this also means that you can't just fork an Android project and build and expect to be able to build it because the Android dependencies that it relies upon may not yet have been downloaded to your repo. This is a real pain for open source an example projects.
Yes, but com.google.android has been dormant since August 2012 aside for 2 example apps. And nature abhors a vacuum to quote Aristotle.
If you are telling me that the support libraries can provide the Holo look and feel without need for HE that's great and I can ditch it from any of my projects that rely on it directly.
This is not true. Any Gradle build or Ant build using dep management is at risk of this even if they haven't used HoloEverywhere directly themselves.
I'd also like to point out that there was and still is a very vibrant Maven Android community long before Gradle was mentioned at IO13. If in doubt just listen to the recording of the Android fireside chat at IO12.One of the things I like about Google's general approach is that it is very open, so that developers can pick up the tool that best fits their needs and apply it without much impediment. Not publishing the Android artifacts has introduced such an impediment and while the community has put up with the situation for the last 2 years, the cracks are starting to get wide enough to do some serious damage.
My point is that because their artifacts are published to a publicly accessible web address their artifacts are more accessible than those being provided by the Android team.But not Maven central, therefore not a problem.
A) Before you can consume any of the artefacts you need to start SDK manager, choose the appropriate versions of the required artifacts and then download them.
Every developer does this. You need the API level you are compiling against. This isn't a problem
Most developers don't use the SDK Manager to download the latest artifacts on a daily basis, they do it at irregular intervals. This means that there is a latency between when the artifacts become available and when the developer first has access to the official artifacts.I agree. I wrote a Gradle plugin to address this: https://github.com/JakeWharton/sdk-manager-plugin. I'd love for the first-party plugin to do this some day.
--
You received this message because you are subscribed to the Google Groups "adt-dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email to adt-dev+u...@googlegroups.com.
Your problem is one for the Maven community.Get them to fix it by delegating to the SDK for the API jar and the two embedded m2 repos. ~50 line change in the plugin, problem completely solved.
--
--
You received this message because you are subscribed to a topic in the Google Groups "adt-dev" group.
To unsubscribe from this topic, visit https://groups.google.com/d/topic/adt-dev/2hPuSUYttbg/unsubscribe.
To unsubscribe from this group and all its topics, send an email to adt-dev+u...@googlegroups.com.
Do you have the official Android support artefacts in your corporate repository?
Are you sure?
Did you personally check? For each and every version version of each artefact?
> Gradle doesn't use the local .m2 repo. Even if someone is dealing with a Maven project on the same machine, they don't share a local artifact cache. Safe.
Unfortunately not so safe if you use 3rd party libs with transitive deps, like, possibly HE, maybe there are others, doesens of them.
Unfortunately not so safe if you use 3rd party libs with transitive deps, like, possibly HE, maybe there are others, doesens of them.