Can't add build.sbt to .gitignore - intellij-idea

I use IntelliJ and Scala plugin to build SBT projects. The thing is that me and my colleagues have a different version of SBT and Scala and I want to add build.sbt, build.properties and plugins.sbt in .gitignore so we can use the same project and work collaboratively on the code, but I don't want to commit/push my build.sbt file as we use different versions.
I tried to add *.sbt or build.sbt but it seems it won't get colored in yellow as other folders I have in .gitignore. Is it restricted to add these files in .gitignore?
It is complicated why we can't use the same versions of everything, we are behind a corporate network and downloading dependencies is a pain. Screenshot

Related

Dependency on package in git without jar file

I am distributing a Java package via git for other people to use. I am currently supplying a jar file to go with the source. This way, the user only needs to clone the project once into Intellij IDEA. Projects using the package can then follow this procedure
Correct way to add external jars (lib/*.jar) to an IntelliJ IDEA project
to use the package.
This works, but distributing a jar does not feel nice security-wise. On the other hand, this discussion
IntelliJ IDEA - adding .java file to project dependencies
suggests that to use the source code, you need to copy it into your src folder.
Is there a way to distribute source code (java files) only so that if multiple projects use the same package
the package only needs to be downloaded once
the package can be kept up to date with git pull?
I would really recommend not include jar or any binaries in a Git repo and the best approach to keep these dependencies in a local Nexus repository and use maven or Gradle as your dependency management tool.
I found a working solution:
Supply an Ant build file with the package. The build file compiles classes and packages them into a jar file. The default target is building the jar, which depends on compiling the classes.
Provide users with instructions on how to set the given Ant build file as a build file in Intellij IDEA and build the default target.
Then instruct them to follow the steps in the first link above to add the jar as a dependency.

Gradle dist folder on IntelliJ classpath

We have a project which we build with gradle. We use IntelliJ as our development environment.
We have some resources we want to keep outside the JAR and so we have put them in the src/dist-folder. This works fine when running the application from the command line, but not so good when we want to debug from IntelliJ.
We could put a runtime-dependency to src/dist, but then we end up with files inside our lib-folder in the generated ZIP file and that's not what we would like to have.
Bottom line: how can we keep some resources outside the JAR (in src/dist) and also on the classpath of IntelliJ (as generated by Gradle; I don't want to have to add things manually to the IntelliJ classpath). The directory structure in the resulting zip should be something like:
root
|
|- config/*
|- css/*
|- lib/*
It seems that this question describes a similar problem, but the solution in addition #4 still mentions that no solution was found to correctly get the resources on the classpath of IntelliJ:
Gradle build file with conf folder with properties not in jar but on classpath
The solution I've used in a similar situation is to:
Use the Idea plugin in gradle rather than relying on the IntelliJ support.
Once that is working you can tweak the source path that IntelliJ uses in the gradle file itself

How to add dependent jars to deploying plug-in

I would to like to add the dependent jars to the update site plugin project in Eclipse.
I followed
http://wiki.eclipse.org/FAQ_How_do_I_create_an_update_site_%28site.xml%29%3F
but, it does not address the above issue. How to deal with the dependent jars with deploying plugin? Anybody please help with ideas.
Thanks
I'm going to assume you are wanting to add additional Jar files to your plugin. You can do this by simply putting the Jar files into the top level directory of your plugin, and in the Classpath portion of the Runtime tab in the Plugin Manifest Editor you can specify the Jar file. This will automatically add it to the build path as well.
Some people prefer to make an extra plugin that contains nothing but external Jar files; you add the Jar files to this extra plugin the same way and then just use the Dependencies tab in the Plugin Manifest Editor to make your original plugin dependent on the Jar plugin.

Maven 2, Nexus and snapshot timestamps are causing problems with eclipse:eclipse

We have moved from Archiva to Nexus and are still using Maven 2.
We execute eclipse:eclipse locally so that Eclipse .project and .classpath files are generated, based on the dependencies in the POMs, and then we import the projects into Eclipse to do our development. We don't use M2Eclipse for a variety of reasons.
Since using Nexus, we have the problem that projects don't always reference each other in the workspace, rather they reference the respective JAR.
I have noticed that Nexus is appending a timestamp to the JAR name, and the MVN output states, e.g.:
[INFO] Artifact myapp-bom:jar:7.3.0.2.1-SNAPSHOT already available as a workspace project, but with different version. Expected: 7.3.0.2.1-20120508.115037-68, found: 7.3.0.2.1-SNAPSHOT
I get the feeling that is the reason why eclipse:eclipse generates .classpath files which contains JAR references (based on local maven repo) rather than project references. When we used Archiva (and there were no timestamps) then we used to get project references, and that is exactly what we want.
Has anyone else had this problem and how is it solved? I read that maven 3 forces timestamps to always be generated. Again, how do you get eclipse:eclipse to generate sensible .classpath files?
Cheers,
Ant
PS - some of our projects come from different SVN repositories. It seems that if the Eclipse Projects are refernced in the parent pom, eclipse:eclipse creates a project reference, but if the Eclipse Projects are from a different parent pom, but still in the workspace, then it can only generate JAR references.
The problem was resolved by using maven-eclipse-plugin (eclipse:eclipse) version 2.9, rather than 2.8! Doh...

intelliJ 9 cannot find class I specify in web.xml

I am trying to get logdigger to work in my java app that uses google app engine. I have tried putting my jar files in the src/ directory, lib/ directory, and no matter what I do, it can't find the class. The only thing that it finds is the com.google.appengine stuff. I have tried messing with my dependencies and it's not working. Has anyone done this before and gotten it to work? I am not sure how to modify the classpath through intelliJ (however in the project settings I have the jars linked as a dependency under the modules section).
You probably need to look at the artifacts for your project. IntelliJ separates runtime assembly of WARs into the artifacts section. Look and see that your WAR file is assembled properly. I'm guessing that you don't put the contents of the /lib directory into the WEB-INF/lib of your WAR. The compiled output ought to go into WEB-INF/classes. All other output belongs in the root of the deployment.