Este es un fragmento del pom.xml de una librería, en la que estoy trabajando 
junto a Alina, para el componente Inspire-Tree JS a través de @externs:



  <build>
    <sourceDirectory>src/main/royale</sourceDirectory>

    <plugins>

      <plugin>
        <groupId>org.apache.royale.compiler</groupId>
        <artifactId>royale-maven-plugin</artifactId>
        <version>${royale.compiler.version}</version>
        <extensions>true</extensions>

        <configuration>
          <targets>JSRoyale</targets>
          <skipExtern>true</skipExtern>
          <includeLookupOnly>true</includeLookupOnly>
          <allowSubclassOverrides>true</allowSubclassOverrides>

          <namespaces>
            <!-- Make the classes listed in the manifest be available under the 
given namespace -->
            <namespace>
              <uri>library://ns.apache.org/royale/tree</uri>
              
<manifest>${project.basedir}/src/main/resources/tree-manifest.xml</manifest>
            </namespace>
            <namespace>
              <type>as</type>
              <uri>library://ns.apache.org/royale/tree</uri>
              
<manifest>${project.basedir}/src/main/resources/tree-as-manifest.xml</manifest>
            </namespace>
          </namespaces>
          <!-- Tell the compiler which classes to compile and include -->
          <includeClasses>
            <includeClass>TREEClasses</includeClass>
          </includeClasses>

          <includeFiles>
            <include-file>
              <name>js/*</name>
              <path>../src/main/resources/js/*</path>
            </include-file>
          </includeFiles>

          <additionalCompilerOptions>
            -js-default-initializers=true;
            -source-map=true;
            -source-map-source-root=${project.basedir}/src/main/royale/;
            -keep-as3-metadata+=Inject,EventHandler,Event,Bindable;
            -keep-code-with-metadata=Inject;
            -show-binding-warnings=false;
          </additionalCompilerOptions>

        </configuration>

        <dependencies>
          <dependency>
            <groupId>org.apache.royale.compiler</groupId>
            <artifactId>compiler-jx</artifactId>
            <version>${royale.compiler.version}</version>
          </dependency>
        </dependencies>

      </plugin>
    </plugins>
  </build>



Hiedra.



-----Mensaje original-----
De: Maria Jose Esteve <[email protected]>
Enviado el: domingo, 10 de octubre de 2021 19:25
Para: [email protected]
Asunto: COMPILE::SWF, COMPILE::JS



Hi, I have a recurring problem with my libraries that I need to understand...

In principle, I understand the concept of the COMPILE::SWF and COMPILE::JS 
directives but I don't quite understand when to apply them "compulsorily" and 
when not to.

So far I follow the clues and act with "trial and error". For example, when I 
see this warning:



Warning: Definition org.apache.royale.core.IBead could not be found.

import org.apache.royale.core.IBead;

                            ^

… I know that I have to specify them ☹



All the example and working projects I have implemented I compile with "SDK 
only JS" and my first thought was that "I don't need to differentiate the code 
for COMPILE::JS" BUT the reality is that I always have to create a "class for 
COMPILE::JS" and another "class for COMPILE:SWF" or separate the 
functions/blocks of code why?



For example, in the pom's I only add dependencies <classifier>js</classifier>, 
I add the mxml embeddable components in the xxxx-manifest.xml file, in the 
internal LIBRERYClasses linking class I have a block with the COMPILE::JS 
directive for all classes that should only be added if the compilation is JS 
(for example the @externs classes).



What do I have to take into account?



Thx.

Hiedra.














Reply via email to