We are setting up some new workstations for build season right now, and I’ve been installing debian, windows and the netbeans+wpilibj on all of them.
So far it has worked out great except for one thing. When I clone the repository from gitihub of our robot code project, this happens on every class.
As far as I can tell, it can’t locate the squawk libraries (which have java.lang). I have made sure that /home/user/sunspotsdk has everything it needs (fresh install, so I’d assume no problems). I have also made sure the plugins are set to the correct location to find them.
I have tried version 3077 (2012 official release) and the update from http://first.wpi.edu/FRC/java/netbeans/update/updates.xml (whatever version that is)
It’s worth mentioning that creating a new project works fine. So is it something in the build file? (I have never touched it) My theory is that is has something to do with switching from a linux environment to windows. I have my git client on windows automatically reformat code to linux standards, but I was negligent a few times and did some commits on the gui git plugin on netbeans. I’ve tried to revert that, but it did not fix the error.
Is this a known bug? What could cause this type of issue? (I’ve been trying to deal with this for a while now. Sent Brad Miller an email a while back but haven’t seen it dealt with)
We get something similar in eclipse when the project committed to the repository defines the build path.
If the local machine (that pulled the repo) doesn’t have classes.jar and squak_device.jar (for eclipse). This is configured
In eclipse these changes are made by right clicking the project and selecting Build Path > Configure Build Path.
Then from the Libraries tab, edit the two jar file locations.
I pulled up Netbeans, and it looks like you should have a similar type of configuration for each project.
Right click on the project, and go to Properties
My guess would be to check the paths for the “Java Sources Classpath” category.
You can set up your git ignore file to prevent these local configuration files from being included in the git repository. Unfortunately I don’t know which file(s) need to be ignored for a netbeans project. If you don’t ignore them though, each time someone pushes their changes, they will likely overwrite the version of the file in the repo with the setting changes they made locally (breaking compilation on other clients whose file locations differ).
Thanks very much. Seems obvious to me now. I don’t have another computer to test this on, but if I just made the properties ignored (.gitignore), when I clone the repo to a new computer, would those be automatically generated by the plugins, or no? If not, how would I make sure that I don’t have to do that whenever I switch from windows to linux?
Edit: I found a pretty easy solution. Instead of absolute path, I just use relative path. This makes /home/ equivalent to User/ is windows.
If you initialize the git repository from within Netbeans, it should use only the correct files. I haven’t tried it with git, but I’ve done the same thing with cvs and successfully moved from windows to Linux and back.