Travis Shirk wrote:
> Hello All,
>
> This post does not have anything to do with Linux, but some of you
> may be able to help since you're Unix users.
>
> ---------------
>
> I'm having some problems using CVS with a pretty large Java API. The problem
> is pretty basic, I want my CVS repository to contain only java source files.
> This is necessary because (1) I don't want CVS to try and merge .class
> files and (2) people working with the repository should need to do a cvs add
> on only the source file and not the new .class file. My problem is
> with dependencies. Many of the classes depend on other classes that
> may not have been created yet in the 'make all' build process. I've played
> around with javac -depend but I don't think it likes how I organize
> my source environment. I have all .java files under a src directory
> in each subpackage directory. So if I have a package called foo.bar
> the directory hierarchy would look like this:
>
> foo/bar contains the .class files
> and foo/bar/src contains the .java files
>
> I refuse to mix the .java and .class files and think it is ridiculous how
> java tools expect this.
>
> Dependencies are not a problem once all the .class files are around, but
> when a user checks out a new repository I don't want them to get any .class
> files. Basically, the first thing that should be done after checking out the
> repository is a 'make all' so that all the .class files are built.
>
> Has anyone ever solved this problem. This is the first time I've really
> wished for header files, because C/C++ does not have this problem during
> compile time.
>
> Travis Shirk
> [EMAIL PROTECTED]
Hi,
Well, I don't use CVS but I do like to have my .class and .java files separate.
So here's what I do:
1. Create a source directory hierarchy that mirrors the .class package hierarchy
(i.e., for package COM.whatever.mylib create <src>/COM, <src>/COM/whatever,
<src>/COM/whatever/mylib)
2. Add the root of the source directory (<src> in the example) to your CLASSPATH
It's not as neat as I'd like (source files shouldn't belong in the
classpath) but the dependency checking works fine.
Hope this helps,
-Mario.