question about output directory created at build
OK, when you build the source, a new directory named "out" is created which contains the result of the ANT build process (I believe...).
I've attached an picture of that out directory and its subfolders.
My goal is to locate the folders which contain those .class files which consittute IntelliJ Community Edition and which were the result of compiling the source.
If you look at the picture you'll see that there are ultimately 2 folders named production at different levels , one directly under "out" the other under a "calsses" folder which itself is directly under "out"
Examining the contents of these folders reveals they both contain compiled .class files.
(Of course there are also other folders , artefacts which contains a few executable jars, some "dist" which are empty and a "tests" folder which we can suppose is contains just what its name implies).
OK so that's the preamble now here's my question. Of the two production folders do one (and if so which one?) , or both of them contain the actual classes which are the compiled version of the source and which *is* IntelliJ community eidtion.
Thanks in advance !
Attachment(s):
intellijOUTFolder.jpg
Please sign in to leave a comment.
Both. The out/classes directory contains classes built from the IDE; the out directory contains classes built by the command-line Ant build.
What are you trying to achieve?
I am trying to write aspects which attach to intellij classes for my own and toher's edification.
I need to know, for that thing we call the IDE, where are all its classes located? Specifacllly what is the exhaustive list of parent directories which contained the result of compiling the community source?
Towards this same goal, it woudl be great if I could invoke the IDE instance which is the result of bulding that source, that instance of the IDE I am talking about, it would be great if I could invoke it with aj - which is aspectJ's runtime, instead of java.
Doing that is pretty simple if you've set up aspectJ on your machine, it's just substituting java with aj, aspectJ's runtime thusly:
at the command line instead of:
A) >> java *whateverCommandlineStuffIntellijIsNormallyInvokedWith*
do this
B) >>aj *whateverCommandlineStuffIntellijIsNormallyInvokedWith*
I went to to do this and I realized I really have no idea where or what line in what file or what code or ANT directive to change in order to achieve this.
Somewhere , after all is said and done with scripts and reading stuff from property files and running ANT commands any of which may or may not exist, somewhere somehow A) above must happen each time I launch Intellij.
That's really all I know.
Both of the directories contain *all* of the classes compiled from the IntelliJ IDEA source code. They don't include the libraries; those are stored in the lib directory of the source tree.
The easiest way to run IntelliJ IDEA under the AspectJ runtime is to edit idea.bat (or idea.sh) and replace java with aj (in idea.bat this is the line thar sets the JAVA_EXE variable, in idea.sh this is the $JDK/bin/java invocation at the very end of the script).
OK just to be perfectly clear. what you're saying is
A) both of the directories contain all of the classes. This is the same as saying what classes each individual directoy contains are duplicated in the other directory, which is the same as saying I can use either directory but there is no reason to use both, since they contain duplicate classes.
or
B) Or did you mean that taken together, the two directories contain all of the classes, but you have to include them both to be sure to get all the classes.
Thanks for the heads up on how to run aj!
What I'm saying is A)