I know nothing about yuicompressor or it's maven plugin

Hopefully somebody else can help you make some progress there, glad you
have made progresss from where you were!

-S

On 5 December 2011 12:54, Ken Egervari <ken.egerv...@gmail.com> wrote:

> Thanks for the response Stephen!
>
> I didn't think we could exclude the copying of the actual sources
> themselves. That makes good sense! I changed it to
> `scripts/**/*.js,css/**/*.css` instead of what you had, and this finally
> seems to get the behaviour I want ;) I really had no idea this existed. I
> was looking at the regular <excludes> tags. Those didn't seem to solve the
> problem for me.
>
> I have one last problem that maybe you can help solve too? It concerns the
> yuicompressor:compress goal again, but this time it's about css.
>
> I'm trying to create two css aggregations - one for the public site and one
> for the application part of the site.
>
> If I make the output file
> ${project.build.directory}/${project.build.finalName}/css/public-all.css,
> everything works.
>
>    [INFO] generate aggregation :
>
> C:\Users\me\IdeaProjects\myapp-development\target\myapp-1.0\css\public-all.css
>    [INFO] public-all.css (32029b)
>    [INFO] generate aggregation :
>
> C:\Users\me\IdeaProjects\myapp-development\target\myapp-1.0\css\application-all.css
>    [INFO] application-all.css (50446b)
>
> But if I try and output the aggregated file to another subdirectory, such
> as
> ${project.build.directory}/${project.build.finalName}/css/public/all.css,
> it gives the following warning (which should honestly be an error...):
>
>    [INFO] generate aggregation :
>
> C:\Users\me\IdeaProjects\myapp-development\target\myapp-1.0\css\public\all.css
>    [WARNING] all.css not created
>    [INFO] generate aggregation :
>
> C:\Users\me\IdeaProjects\myapp-development\target\myapp-1.0\css\application\all.css
>    [WARNING] all.css not created
>
> Here is the pom.xml part where I am specifying the aggregations. Why on
> earth is this not working?
>
>    <aggregation>
>        <removeIncluded>false</removeIncluded>
>        <insertNewLine>true</insertNewLine>
>
>
> <output>${project.build.directory}/${project.build.finalName}/css/public/all.css</output>
>        <includes>
>            <include>**/public/base.css</include>
>            <include>**/public/jquery.fancybox-1.3.4.css</include>
>        </includes>
>    </aggregation>
>    <aggregation>
>        <removeIncluded>false</removeIncluded>
>        <insertNewLine>true</insertNewLine>
>
>
> <output>${project.build.directory}/${project.build.finalName}/css/application/all.css</output>
>        <includes>
>            <include>**/application/reset.css</include>
>            <include>**/application/text.css</include>
>            <include>**/application/960.css</include>
>            <include>**/application/jquery-ui-1.8.11.custom.css</include>
>            <include>**/application/base.css</include>
>            <include>**/application/jquery.jcrop.css</include>
>            <include>**/application/farbtastic.css</include>
>        </includes>
>    </aggregation>
>
> I checked and these directories exist too. If I try and point to a
> directory that doesn't exist, the yuicompressor:compress goal will fail. I
> just don't understand why the build process actually succeeds given valid
> directories, but it doesn't create the files in those directories. It makes
> no sense :(
>
> I thought that maybe it was a filesystem security problem, but that isn't
> it either.
>
> I am genuinely baffled as to why this doesn't work. I would appreciate any
> assistance on this little problem too. After this, I'm good to go ;)
>
> Ken
>
>
> On Mon, Dec 5, 2011 at 4:39 AM, Stephen Connolly <
> stephen.alan.conno...@gmail.com> wrote:
>
> > <project xmlns="http://maven.apache.org/POM/4.0.0"; xmlns:xsi="
> > http://www.w3.org/2001/XMLSchema-instance";
> >         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
> > http://maven.apache.org/maven-v4_0_0.xsd";>
> >  <modelVersion>4.0.0</modelVersion>
> >  <groupId>localdomain.localhost</groupId>
> >  <artifactId>example</artifactId>
> >  <packaging>war</packaging>
> >  <version>1.0-SNAPSHOT</version>
> >  <build>
> >    <finalName>example</finalName>
> >    <pluginManagement>
> >      <plugins>
> >        <plugin>
> >          <artifactId>maven-release-plugin</artifactId>
> >          <version>2.2.1</version>
> >          <configuration>
> >            <releaseProfiles>release</releaseProfiles>
> >          </configuration>
> >        </plugin>
> >        <plugin>
> >          <artifactId>maven-war-plugin</artifactId>
> >          <version>2.1.1</version>
> >        </plugin>
> >        <plugin>
> >          <groupId>org.codehaus.mojo</groupId>
> >          <artifactId>tomcat-maven-plugin</artifactId>
> >          <version>1.1</version>
> >          <configuration>
> >            <path>/</path>
> >          </configuration>
> >        </plugin>
> >        <plugin>
> >          <groupId>org.mortbay.jetty</groupId>
> >          <artifactId>jetty-maven-plugin</artifactId>
> >          <version>8.0.1.v20110908</version>
> >        </plugin>
> >      </plugins>
> >    </pluginManagement>
> >  </build>
> >  <profiles>
> >    <profile>
> >      <id>release</id>
> >      <activation>
> >        <property>
> >          <name>yui.compress</name>
> >        </property>
> >      </activation>
> >      <build>
> >        <plugins>
> >          <plugin>
> >            <artifactId>maven-war-plugin</artifactId>
> >            <version>2.1.1</version>
> >            <configuration>
> >              <warSourceExcludes>scripts/*.js</warSourceExcludes>
> >            </configuration>
> >          </plugin>
> >          <plugin>
> >            <groupId>net.alchim31.maven</groupId>
> >            <artifactId>yuicompressor-maven-plugin</artifactId>
> >            <version>1.1</version>
> >            <executions>
> >              <execution>
> >                <phase>prepare-package</phase>
> >                <goals>
> >                  <goal>compress</goal>
> >                </goals>
> >              </execution>
> >            </executions>
> >            <configuration>
> >              <nosuffix>true</nosuffix>
> >            </configuration>
> >          </plugin>
> >        </plugins>
> >      </build>
> >    </profile>
> >  </profiles>
> > </project>
> >
> > should do what you want... you get live in place development of the
> > uncompressed scripts with tomcat:run or jetty:run... when you want to try
> > the compressed scripts
> >
> > mvn -Prelease tomcat:run-war
> > or
> > mvn -Prelease jetty:run-war
> >
> > and when you make an actual release with the release plugin, it will be
> the
> > compressed scripts that are bundled.
> >
> > Note: for the compressed scripts you need to use run-war not run as due
> to
> > how the servlet containers work, there are limitations to what the
> servlet
> > container plugins can do, and therefore the only way to get a true
> > reflection of the final artifact (ie. the war file) is to run the war
> file
> > and not in-place.
> >
> > HTH
> >
> > -Stephen
> >
> > On 5 December 2011 05:18, Ken Egervari <ken.egerv...@gmail.com> wrote:
> >
> > > Hi guys,
> > >
> > > I finally got one comment from someone that looks promising, but I'm
> not
> > > how to do what he's suggesting since he didn't give an example:
> > >
> > > The reason you're having problems is because the copying of webapp
> > > resources is done by the war
> > > plugin<http://maven.apache.org/plugins/maven-war-plugin/>in the same
> > > breath that it builds the war. It's not a different lifecycle
> > > phase or even two different actions in the same phase. It's all part
> > > of the war:war
> > > goal <http://maven.apache.org/plugins/maven-war-plugin/war-mojo.html>.
> > >
> > > There's a workaround, though. If you bind
> > > war:exploded<
> > > http://maven.apache.org/plugins/maven-war-plugin/exploded-mojo.html>to
> > > an earlier phase, like
> > > prepare-package, then it will build your exploded webapp, and then you
> > can
> > > put something after that to modify the files that were built to the
> > > exploded directory. Then war:war will package up the modified exploded
> > > directory. (With newer versions of the war plugin, I believe you'll
> need
> > to
> > > set the useCache<
> > >
> http://maven.apache.org/plugins/maven-war-plugin/war-mojo.html#useCache
> > > >property
> > > to get the desired behavior, though that doesn't seem to really be
> > > what it's for, be wary.)
> > > I know how to bind the `maven-war-plugin` to an earlier phase, but how
> to
> > > bind just the war:exploded to an earlier phase as he suggests?
> > >
> > > Ken
> > >
> > >
> > > On Sun, Dec 4, 2011 at 9:49 AM, Ken Egervari <ken.egerv...@gmail.com>
> > > wrote:
> > >
> > > > I think there has to be a better way than using the excludes. I
> really
> > > > don't want to be maintaining so many lists of javascript files...
> it'll
> > > be
> > > > way too much of a maintenance problem. I just want this "to work". My
> > > > project is massive. There is at least 150 javascript files as it is,
> > and
> > > > probably another 100-150 to be created. I just can't do the
> maintenance
> > > > work. I am doing this whole project just by myself, and it's massive.
> > > >
> > > > Ken
> > > >
> > > >
> > > >
> > > > On Sun, Dec 4, 2011 at 8:54 AM, Robert Scholte <
> rfscho...@codehaus.org
> > > >wrote:
> > > >
> > > >>
> > > >> What about warSourceExcludes[1]?
> > > >>
> > > >> Don't make the m-war-plugin responsible for copying these files but
> > the
> > > >> yuicompressor.
> > > >>
> > > >>
> > > >>
> > > >>
> > > >>
> > > >> -Robert
> > > >>
> > > >>
> > > >>
> > > >> [1]
> > > >>
> > >
> >
> http://maven.apache.org/plugins/maven-war-plugin/war-mojo.html#warSourceExcludes
> > > >>
> > > >>
> > > >> > Date: Sun, 4 Dec 2011 08:44:28 -0500
> > > >> > Subject: Re: YUI Compressor Maven plugin executed at wrong time
> and
> > > >> tomcat plugin not using yui-compressor output
> > > >> > From: ken.egerv...@gmail.com
> > > >> > To: users@maven.apache.org
> > > >> >
> > > >> > Yes, I've been playing around with getting the
> > development/production
> > > >> part
> > > >> > working, and I think I've got it.
> > > >> >
> > > >> > I am still having problems getting the yuicompressor:compress goal
> > to
> > > be
> > > >> > called at the right time. The problem is that the war:war goal
> has a
> > > >> bunch
> > > >> > of actions backed into it, and I don't know a way to wire into it
> > and
> > > >> call
> > > >> > the yuicompressor:compress goal just after it copies the
> > webResources
> > > >> > directory. If I can solve that, I think I am golden. But I don't
> > know
> > > if
> > > >> > that can be done.
> > > >> >
> > > >> > Ken
> > > >> >
> > > >> >
> > > >> > On Sun, Dec 4, 2011 at 4:02 AM, Stephen Connolly <
> > > >> > stephen.alan.conno...@gmail.com> wrote:
> > > >> >
> > > >> > > this is a perfect use case for profiles.
> > > >> > >
> > > >> > > in the release profile you use yui-compress to copy them into
> the
> > > war
> > > >> > >
> > > >> > > in a development profile you add warResources to construct the
> war
> > > >> from the
> > > >> > > direct sources....
> > > >> > >
> > > >> > > that (assuming the tomcat maven plugin is written right... jetty
> > can
> > > >> do
> > > >> > > this for sure) will give development with live editing, and just
> > > >> -Prelease
> > > >> > > to get the compressed version
> > > >> > >
> > > >> > > - Stephen
> > > >> > >
> > > >> > > ---
> > > >> > > Sent from my Android phone, so random spelling mistakes, random
> > > >> nonsense
> > > >> > > words and other nonsense are a direct result of using swype to
> > type
> > > >> on the
> > > >> > > screen
> > > >> > > On 4 Dec 2011 01:52, "Ken Egervari" <ken.egerv...@gmail.com>
> > wrote:
> > > >> > >
> > > >> > > > I think I should just give up on this problem because I don't
> > > think
> > > >> Maven
> > > >> > > > has the ability to solve it, and if it does, I have no idea
> > where
> > > >> to look
> > > >> > > > for a solution and its clear nobody else writing java web
> > > >> applications
> > > >> > > > knows how to solve this problem :/
> > > >> > > >
> > > >> > > > I guess I am stuck with manually including each main file on
> > each
> > > >> page
> > > >> > > > where it is used, or coding everything in an all.js manually
> :/
> > > >> > > >
> > > >> > > > Even if I can get Maven to properly call the YUI:compress goal
> > at
> > > >> the
> > > >> > > right
> > > >> > > > time, I still have maintain two lists of css and javascript
> > files
> > > >> for my
> > > >> > > > application - one for the aggregations, and one for my
> > freemarker
> > > >> > > template
> > > >> > > > that switches between using all the individual source files
> for
> > > >> > > > development, or using the all.css/all.js for production.
> > > >> > > >
> > > >> > > > I genuinely don't see a nice solution to do what the Rails
> > people
> > > >> have
> > > >> > > > conveniently got in place. I am totally flustered that the
> > > >> Maven/Spring
> > > >> > > > combo has no good for answer to this problem :(
> > > >> > > >
> > > >> > > > Ken
> > > >> > > >
> > > >> > > >
> > > >> > > > On Sat, Dec 3, 2011 at 4:19 PM, Ken Egervari <
> > > >> ken.egerv...@gmail.com>
> > > >> > > > wrote:
> > > >> > > >
> > > >> > > > > I think the problem is that there is no phase I can merge
> into
> > > >> just
> > > >> > > after
> > > >> > > > > it prepares the war directory - at least not from where I
> can
> > > see
> > > >> in
> > > >> > > the
> > > >> > > > > life-cycle documentation. What is the phase name? Is it not
> > any
> > > >> of the
> > > >> > > > > package or pre-package phases - it is still too early or too
> > > late.
> > > >> > > > >
> > > >> > > > > Ken
> > > >> > > > >
> > > >> > > > >
> > > >> > > > >
> > > >> > > > > On Fri, Dec 2, 2011 at 5:16 AM, Jeff MAURY <
> > > >> jeffma...@jeffmaury.com
> > > >> > > > >wrote:
> > > >> > > > >
> > > >> > > > >> By default, the compress goal of the YUI maven plugin is
> > bound
> > > >> to the
> > > >> > > > >> process-resources phase.
> > > >> > > > >> So, you need to bind it to another phase after the war
> plugin
> > > has
> > > >> > > > produced
> > > >> > > > >> the war directory structure the Tomcat plugin will use.
> > > >> > > > >> I recommand you also customize the outputDirectory
> parameter
> > of
> > > >> the
> > > >> > > YUI
> > > >> > > > >> maven plugin because the default value does not comply with
> > the
> > > >> > > standard
> > > >> > > > >> Maven War directory layout.
> > > >> > > > >>
> > > >> > > > >> Regards
> > > >> > > > >> Jeff MAURY
> > > >> > > > >>
> > > >> > > > >> ---------- Forwarded message ----------
> > > >> > > > >> From: fe.character.guide <fe.character.gu...@gmail.com>
> > > >> > > > >> Date: Fri, Dec 2, 2011 at 7:17 AM
> > > >> > > > >> Subject: YUI Compressor Maven plugin executed at wrong time
> > and
> > > >> tomcat
> > > >> > > > >> plugin not using yui-compressor output
> > > >> > > > >> To: users@maven.apache.org
> > > >> > > > >>
> > > >> > > > >>
> > > >> > > > >> Hello everyone!
> > > >> > > > >>
> > > >> > > > >> I'm trying to get some basic maven build processes
> configured
> > > >> > > correctly
> > > >> > > > >> with my Java project, and beyond Stackoverflow, I'm not
> sure
> > > >> > > > >> where else to turn.
> > > >> > > > >>
> > > >> > > > >> I'd like to compress all of my javascript files and
> aggregate
> > > >> them
> > > >> > > using
> > > >> > > > >> YUICompressor, and I saw that there was a maven plugin to
> > allow
> > > >> me to
> > > >> > > do
> > > >> > > > >> this. I got it working for the most part.
> > > >> > > > >>
> > > >> > > > >> I am also using the Mojo tomcat plugin as well. When i go
> to
> > > run
> > > >> the
> > > >> > > > >> tomcat:run goal, tomcat does not read from the target's
> > output
> > > >> > > > >> directory (this is where the YUI compressor put my
> javascript
> > > >> files) -
> > > >> > > > but
> > > >> > > > >> rather, it reads from the actual source files in my
> > "src/main/
> > > >> > > > >> webapp/scripts" directory. Of course, the aggregated
> > javascript
> > > >> file
> > > >> > > > >> (all.js) is not there. This makes sense, but is a big
> problem
> > > >> for me.
> > > >> > > > >>
> > > >> > > > >> I have a few questions.
> > > >> > > > >>
> > > >> > > > >> 1. How can I get the tomcat plugin to read the target's
> > output
> > > >> folder
> > > >> > > > that
> > > >> > > > >> the yui compressor plugin created?
> > > >> > > > >>
> > > >> > > > >> 2. Do I have to run the yui compressor maven goal every
> time
> > I
> > > >> want to
> > > >> > > > >> update my javascript files during development while my
> tomcat
> > > >> instance
> > > >> > > > is
> > > >> > > > >> running?
> > > >> > > > >>
> > > >> > > > >> 3. How can tell Maven that I want to run the YUI compressor
> > > AFTER
> > > >> > > Maven
> > > >> > > > >> copies over the `src/main/webapp` directory? Currently,
> Maven
> > > >> runs the
> > > >> > > > YUI
> > > >> > > > >> compressor, but then overwrites all of the compressed css
> and
> > > >> > > javascript
> > > >> > > > >> files with the original source files, defeating the
> purposes
> > of
> > > >> > > > >> compressing
> > > >> > > > >> them ;)
> > > >> > > > >>
> > > >> > > > >> 4. Is there a better way to achieve my objective rather
> than
> > > >> using the
> > > >> > > > YUI
> > > >> > > > >> compressor? Essentially, my end goal is to be able to
> develop
> > > >> > > JavaScript
> > > >> > > > >> code in separate files and test my source files in
> > development
> > > >> mode
> > > >> > > > >> without
> > > >> > > > >> having to aggregate them... but I want to compress and
> > > aggregate
> > > >> the
> > > >> > > > files
> > > >> > > > >> and use the `all.js` script when the application is running
> > in
> > > >> > > > production
> > > >> > > > >> mode.
> > > >> > > > >>
> > > >> > > > >> While the Rails people have certainly figured this out,
> this
> > > >> seems to
> > > >> > > > be a
> > > >> > > > >> non-trivial thing to do with Maven and Spring.
> > > >> > > > >> I would appreciate any and all assistance on how I can get
> > this
> > > >> > > running
> > > >> > > > >> correctly. Thanks!
> > > >> > > > >>
> > > >> > > > >>
> > > >> > > > >>
> > > >> > > > >> --
> > > >> > > > >> "Legacy code" often differs from its suggested alternative
> by
> > > >> actually
> > > >> > > > >> working and scaling.
> > > >> > > > >> - Bjarne Stroustrup
> > > >> > > > >>
> > > >> > > > >> http://www.jeffmaury.com
> > > >> > > > >> http://riadiscuss.jeffmaury.com
> > > >> > > > >> http://www.twitter.com/jeffmaury
> > > >> > > > >>
> > > >> > > > >
> > > >> > > > >
> > > >> > > >
> > > >> > >
> > > >>
> ---------------------------------------------------------------------
> > > >> To unsubscribe, e-mail: users-unsubscr...@maven.apache.org
> > > >> For additional commands, e-mail: users-h...@maven.apache.org
> > > >>
> > > >>
> > > >
> > >
> >
>

Reply via email to