Share java and android sdk versions in intellij - version-control

We have IntelliJ project and module files checked into version control. They great, but if we switch java or android sdks, everyone needs to do something on their own machine (update the sdk, add it to IntelliJ, etc.).
I found http://leolabs.org/blog/making-intellij-portable/, which explains how to set up configuration paths in IntelliJ, which allows us to share things like SDKs. My current plan is to follow that guide and check the IntelliJ install directory into our version control so everyone can run it from there, and it will have sdks all set up.
The problem I see with this technique is then other options are shared as well. That's great for coding style (though you can make coding style project specific, so that's not a real win), but not as good for things like visible white-space.
So my question is: Is there a more granular way to share java and android SDKs and have IntelliJ correctly point to them? Thanks.

SDKs and Global Libraries are referenced in the project files by names, like 1.7 for Java or Android 4.2.2 Platform for Android SDK.
The easiest solution is to agree about the common names for the SDKs and ask all the developers to configure the SDKs using these names (needs to be done only once and when you have to switch to the new major version of the SDK).
This configuration allows the developers to have actual SDK installations in different locations and is also OS independent.
If you decide to share global IDE configuration files (like jdk.table.xml), all the team members will need to have SDKs installed in the same place and it will fail between different operating systems.

Related

How to Version Plugins

I wonder how to version plugins.
There are plenty ways of versioning a software products but they're all 1-dimensional.
Are there best practices for 2-dimensional versioning which indicates both compatibility to the main application and compatibility to the plugin API?
Eclipse for example proposed a versioning scheme for which every plugin uses semantic versioning. Additionally there's a rule to distinguish between development streams by increasing the service number by 100. This ends in versions like that:
Plugin version v1.0.8 for Eclipse v3.1
Plugin version v1.0.108 for Eclipse v3.2
This seems a bit fishy to me. Are there better ways?
Why do you need to show the information about main application version in version of plugin? Does it help users to choose a suitable one?
I prefer put this information in a plugin name. For example, plugin-eclipse31-1.0.8 and plugin-eclipse32-1.0.8. You can put branch name (eclipse31 or eclipse32 in examples) in plugin version, to make things easier.

How to install ADT 11.0.0 on Eclipse(helios)

I am a Fresh developer of Android application,
can anyone please help that how i can install ADT 11.0.0 on Eclipse(Helios),
i tried my best at least two days to overcome on this issue,but this error is coming continually that conflicting dependency is present.
First Method:
I tried to put ADT 11.0.0 offline in eclipse but this is not affecting,means i just copy paste plugin and features folder of ADT 11.0.0 in eclipse(helios)..
SECOND METHOD:
I used this URL http://dl-ssl.google.com/android/eclipse/ to install ADT 11.0.0 online,
Here is screen shots,
![This is an error which i am facing through online installation.]
I shall be very thankful if anyone helps me..........
Thanking you,
HelperANDFinder.
#HelperAndFinder, you can directly download Eclipse ADT bundle, advantage is that:
With a single download, the Eclipse ADT bundle includes everything you need to begin developing apps:
Eclipse + ADT plugin
Android SDK Tools
Android Platform-tools
A version of the Android platform
A version of the Android system image for the emulator
Means you don't need to install ADT separately, just you need to download this bundle and your job done.
http://developer.android.com/sdk/index.html
That is one way, other way is:
Update an Eclipse IDE for Android development, in which you are more
interested. Kindly look into this link to see step by step procedure:
Click here - This link provides step by step guidance on same.
And for exploring Android in detail with to the point then check out this link:
And to give you high level overview then
Eclipse is IDE which supports Android App Development through plugin or as Complete package which is the first way.
Androi SDK - A Software Development Kit that enables developers to create applications for the Android platform. The Android SDK includes sample projects with source code, development tools, an emulator, and required libraries to build Android applications. Applications are written using the Java programming language and run on Dalvik, a custom virtual machine designed for embedded use which runs on top of a Linuxkernel.
ADT - ADT (Android Developer Tools) is a plugin for Eclipse that helps you to develop Android applications quickly. ADT provides GUI access to many of the command line SDK tools as well as a UI design tool for rapid prototyping, designing, and building of your application's user interface means just drag and drop thing is there to come up with basic layout for your application like we did in swing, and AWT kind of application. It's more than that just explore it more...;)

Are eclipse C++ IDE Workspaces fully compatible with all IDE platform versions? (Linux, iOS, Windows...)

Are workspaces created by eclipse for c++ with one OS fully compatible with the same IDE but on another OS or will I have to deal with some kind of issues?
Thanks
In short, no, workspaces won't just work if you change platforms and nothing else due to the locations of libraries, compilers, etc. being different on different platforms.
Another answer here explains how you can use Dropbox's selective sync to keep the platform specific files separate from everything else. Many popular version control systems (git, svn) have an "ignore" functionality that will keep platform specific stuff from being shared.

Eclipse EGit and GWT/GAE

I have a central GIT repository, so that i can work on the project from different computers.
However when i pull the project on the other computer i get the error "Unbound classpath container: 'GWT SDK [missing]' in project 'Test Project'" (I also get a similar error for GAE).
So my question is: How do i setup my project so the same version of GAE/GWT is used on all computers.
I suspect the problem could be caused by the different versions of GAE and GWT on the machines. For example: GWT (1) is not the same version on the machines as it depends on when you updated GWT.
I ran into this problem too, and solved it by installing the GAE and GWT sdks under specific names, manually. That is, instead of relying on eclipse's software update tools, I downloaded the specific SDK version I wanted from the googlecode sites, and then added them manually to eclipse. This way their names include the numbers, and your git repository can store information about which versions it's using.
I do have to install the sdks manually on each developer machine, which is a drag.
To install an sdk manually:
Download it
Right-click on the sdk container in eclipse (in project explorer, it probably says GWT SDK [missing])
Choose properties
Click configure SDKs
follow the path to install a new sdk
You don't have to set the new sdk as default or anything - your project will pick it up immediately after you install it.
Note to any GPE developers: it'd be nice if the sdks were installed automatically with a version-specific name for the benefit of source control!
You can Change the project's SDK target.
In eclipse go to Marker [it is a tab next on the extreme left of the tabs including Console and Development] --> Left Click problem indication --> Click Quick fixes and choose the option which re-configures the project. This should fix the problem. Note that if your code uses features that changed between SDK versions you will have to make changes.
Combined with Rilev Lark's answer This is a chance to Update your projects or your environments whenever the problem occurs.

Build and project management tool for iOs build and dependencies

I have a Java, Apache Maven and Android background and I am dabbling a bit with iOS. Now I am wondering if there is some sort of standard tool chain that helps with things like
managing scm details (svn, git, mercurial, branching, tagging..)
release management (version numbering, managing dev vs prod configuration...)
working with dependencies (e.g. centralized for multiple project and developers, remote access)
IDE independent build
CI build
testing libraries (unit testing, integration testing, ui testing, mocking)
static analysis
project health reporting
other IDEs
and a whole bunch of other things that the Maven ecosystem provides like public library repositories and so on. From my initial research there does not seem much around, but I might just be looking in the wrong places.
What are the must have tools and libraries for iOS development?
Also I have the impression that Xcode rules it all and if a feature is not there you end up out of luck (e.g. git or hg support) and add other tools. Thats fine but you will always have to use Xcode right?
We open-sourced our XCode Maven plug-in some weeks ago. At SAP we use it to build all our iOS apps and libraries centrally in a product standard compliant way with Maven on a Hudson. Libraries and apps are deployed to Nexus and dependencies (to libraries) are resolved automatically by Maven.
Some overview documentation and binaries on Maven central are still missing, but the sources and technical documentation are already available on Github. If you have questions please write to our mailing list. We will try to help you.
http://sap-production.github.com/xcode-maven-plugin
https://github.com/sap-production/xcode-maven-plugin
Kind regards, Alex
managing SCM details: Xcode has limited support for some SCMs. There are good third-party SVN interfaces around: I use Versions by Sofa.
dependencies: Xcode does a good job here.
IDE-independent build: there's a command-line tool called xcodebuild that builds Xcode projects. If you want to try compiling and linking an iOS app project without using Xcode at all, then good luck, and go to make or your favourite build tool. You could look at the gnustep-make to see how to build apps with make, then port that to iOS projects. Notice that you'll still need to install Xcode in order to build even if you use other tools, because you need the SDK.
CI build: I use CruiseControl.rb, some people use Hudson.
static analysis: Xcode. Hit "build and analyze".
You can build unit tests right into your project in Xcode and they'll be run during the build process. For anyone with familiarity with junit it'll seem very straightforward and natural. There were sessions at the 2010 WWDC about automated testing with Instruments as well that would likely fill an integration testing role for you. It was session 306 if you want to look for the video and materials in the Apple developer site. I've looked into it but haven't actually done any of the UI testing so I can't say how easy or complete it is.